File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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
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: 46332
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: 15081

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!

I agree. Here's the link:
subject: What's up with these literal assignments?
It's not a secret anymore!