This week's book giveaway is in the JavaFX forum.
We're giving away four copies of Introducing JavaFX 8 Programming and have Herbert Schildt on-line!
See this thread for details.
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 Introducing JavaFX 8 Programming this week in the JavaFX forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "What Watch "What New topic

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!
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 44433
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: 14991

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 8 API documentation
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!

Don't get me started about those stupid light bulbs.
subject: What's up with these literal assignments?
It's not a secret anymore!