• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

switch question

 
Dinesh Tahiliani
Ranch Hand
Posts: 486
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A case constant must evaluate to the same type as the switch expression can
use, with one additional�and big�constraint: the case constant must be a
compile time constant! Since the case argument has to be resolved at compile
time, that means you can use only a constant or final variable that is assigned a literal value. It is not enough to be final, it must be a compile time constant. For example:


Can anyone please explain me the sentence and why it is giving compile error for case b. Please ranchers...
 
camilo lopes
Ranch Hand
Posts: 202
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
because when you declared one variable as a final, is necessary that you define one value. Because with the modifier final the variable not have value default and in case switch �s necessary that each case have one value constant.
 
fred rosenberger
lowercase baba
Bartender
Posts: 12186
34
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The compiler is stupid, and cannot figure out that the two lines go together... especially since they could theoretically be hundreds of lines apart.
 
Prakash Subramanian
Ranch Hand
Posts: 32
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In the below code you can see why a compile time constant is being insisted upon. Even though it is defined as final, it varies at runtime with each instantiation. Hope this example clarifies your question.

 
Jesper de Jong
Java Cowboy
Saloon Keeper
Posts: 15452
42
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Dinesh Tahiliani:
Can anyone please explain me the sentence and why it is giving compile error for case b.

Obviously because it's not a compile-time constant.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic