Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
JavaRanch.com/granny.jsp
The moose likes Beginning Java and the fly likes What's up with these literal assignments? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "What Watch "What New topic
Author

What's up with these literal assignments?

Jose Campana
Ranch Hand

Joined: May 28, 2007
Posts: 339
Hello once again ranchers !
I've been gone for a while, but I'm glad to be back certainly.

You know I have read that any literal assignment when talking about numbers is implicitly an int.
Does the compiler have to do a (implicit) Cast of some sort from int to another type in a case like the one below?:



Is the number on the right of the equals an int that needs to be Cast & then boxed ?

That'd be it for today,
Thanks in advance and good luck!
Sincerely,
Jose
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38472
    
  23
That sort of question comes up quite often here.

You are obviously using J5 or J6, and you are using autoboxing. In an initial assignment of a byte you can put a number to the right of the assigns (=) sign, and the compiler will presume it is supposed to be a byte. Provided it is in the range -0x80 to 0x7f (-128 to +127), without needing to write a cast.
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14114
    
  16

Integer literals are indeed ints, but there is a special case for byte.

If you assign a value to a byte (or Byte, via autoboxing), and the value that you are assigning is a compile-time constant, then the compiler can check at compile-time if the value is in the range for the byte data type (-128 to +127), and then you can do this without casting.

If the value is not a compile-time constant, then you must use a cast. For example:

[ December 15, 2007: Message edited by: Jesper Young ]

Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
Jose Campana
Ranch Hand

Joined: May 28, 2007
Posts: 339
Hello friends,

Whoa!, That's interesting. Really interesting. For a minute I thought I asked a dumb-question; But it's good to see that there actually is more than meets the eye when talking about assignments.
I'm satisfied with the explanation guys, I could never have figured it out on my own,

Thank you, your work is always appreciated!

Sincerely,
Jose
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: What's up with these literal assignments?