Welcome to the Treehouse Community
The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Sara Mørk
Full Stack JavaScript Techdegree Student 2,838 PointsWhy can't I cast an int to a String? (From Building a Simple Android App: Generating a Random Number)
Out of curiosity, I thought it would be interesting to see if the randNum int could be cast into a string- because I thought it would be prettier to look at. For some reason though, casting a type doesn't work in this example.. And I just want to know why? :L
View.OnClickListener btnClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = "";
//select random fact
Random randGen = new Random();
int randNum = randGen.nextInt(3);
str = randNum + "";
// str = (int)randNum;
mfunFact.setText(str);
}
};
2 Answers

Tarek M.Tolba
Courses Plus Student 3,613 PointsHere are the answers to your questions: http://stackoverflow.com/questions/8973381/why-cannot-cast-integer-to-string-in-java
http://stackoverflow.com/questions/4105331/how-do-i-convert-from-int-to-string

Tarek M.Tolba
Courses Plus Student 3,613 PointsActually there is nothing wrong with this part of code, it should be showing a random number from 0 to 2 for each click on the button. but since that's not happening I suppose the reason is " mfunFact.setText(str);" i guess you are typing it with a capital F as a member variables. so it should be mFunFact instead check your member variables.
if that wasn't the reason then show me the full code.

Sara Mørk
Full Stack JavaScript Techdegree Student 2,838 PointsHi Tarek!
Sorry, I was really eager to move on to the next excercise, that I didn't manage to explain my question well. :L
The logic behind the function I've included in my question was taken from the tutorial video (just changed the names of the variables), and at the time of writing, it did the job of outputting a random int between 0 and 2 to the activity.. The only thing I was really wondering is.. Why I can't cast the integer as a string as so;
str = randNum + ""; //why does this work
str = (int)randNum; //and why not this?
Logically, the second line should be doing the same thing. But unfortunately, it throws back an error. The first one does the job, for sure.. But it isn't very pretty! I wanted to know if there was a prettier way to write out this line of code..
str = randNum + "";
Sara Mørk
Full Stack JavaScript Techdegree Student 2,838 PointsSara Mørk
Full Stack JavaScript Techdegree Student 2,838 PointsThis makes sense! I didn't know there were different object-type hierarchies in Java :x
I'll give it a shot with .toString();
Thanks!