|
Duplicate :
|
|
|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
Name: krT82822 Date: 09/28/99
According to the language specification, the "case" in a
Switch/Case statement must be a constant (i.e.
switch(x){
case A: //do stuff...
case B: //do other stuff...
default: //do default stuff...
} // A and B must be constant ints at compile time)
The typical way to define constant int is with a "public static final int"
declaration. However, sometimes we may want to put more "ooomf"
(such as strong typing and enumation capabilities) into our
constants and this requires creating constants of a particular
class (see the article in JavaWorld for a more in-depth explanation
http://www.javaworld.com/javaworld/jw-07-1997/jw-07-enumerated.html).
A brief example:
public final class EmployeeType{
public final int ord;
public static int highestOrd = 0;
private EmployeeType(){
ord = highestOrd++;
}
public static final WORKER = new EmployeeType();
public static final MANAGER = new EmployeeType();
public static final SUPERVISOR = new EmployeeType();
}
We may later on try to use EmployeeType.WORKER.ord as a constant
only to find the compiler does not consider this a constant. However,
logically, it is impossible for EmployeeType.WORKER.ord to not hold
a constant value, given the code above.
------------
9/28/99 eval1127@eng -- the "spirit" of this request is covered elsewhere, I believe, but am filing a reference RFE just to make sure.
(Review ID: 95666)
======================================================================
|