aspose file tools*
The moose likes Java in General and the fly likes Final variables Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Final variables" Watch "Final variables" New topic
Author

Final variables

Parinitha Paramesh
Greenhorn

Joined: Jan 21, 2013
Posts: 5
Hi,

I am a beginner to programming. I am currently preparing for SCJP 6 when I came across this code on final variables. Can anybody just help me out with this?

final int a = 1;
final int b;
b = 2;
int x = 0;
switch (x) {
case a: // OK
case b: // compiler error

When I tried this code, I got a compile error like this:

constant expression required for case b:

My doubt is if final variables can be initialized anytime(not necessarily at the time of the declaration of the variable), then why am I getting this error for variable b?
Thanks in advance.
Stephan van Hulst
Bartender

Joined: Sep 20, 2010
Posts: 3401
    
    9
Because switch cases require constant expressions, and final variables are not constant expressions unless they are initialized in the same line they're declared. It's just a language rule.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 36599
    
  16
And welcome to the Ranch
Parinitha Paramesh
Greenhorn

Joined: Jan 21, 2013
Posts: 5
Thanks Stephan van Hulst. Your answer really helped.
Parinitha Paramesh
Greenhorn

Joined: Jan 21, 2013
Posts: 5
Thanks Campbell Ritchie. I'm hoping to get most of my doubts cleared through this portal as I'm a beginner to programming and I don't have much help around me to resolve my queries.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Final variables
 
Similar Threads
case doubt
Operator self test question and Flow Control doubt.
Legal arguments in switch case statements
Switch case logic
final Integer reference in case statement