The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes assignment conversion Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "assignment conversion " Watch "assignment conversion " New topic

assignment conversion

Karel KoboojBot
Ranch Hand

Joined: Apr 09, 2004
Posts: 35
according to the JLS (p. 66) I think the following block of code should be allowed

but my IDE (Eclipse) reports this as an error. Did I make a wrong interpretation of the JLS or is the Eclipse IDE a bit too restrictive in this case ?
Corey McGlone
Ranch Hand

Joined: Dec 20, 2001
Posts: 3271
This is an error. You can not implicitly cast a short (2 bytes) to a byte (1 byte).
However, if the value you are assigning is a constant (and therefore known at compile time), the assignment is allowed, as long as the value fits into the destination type.
Try making your short final - that will make it a compile-time constant and I believe your code will work.

SCJP Tipline, etc.
Karel KoboojBot
Ranch Hand

Joined: Apr 09, 2004
Posts: 35
Thanks, after reading the JLS section again it states clearly that the expression should be constant. Making it final does indeed work.
I agree. Here's the link:
subject: assignment conversion
It's not a secret anymore!