[code=Java]int i = irgend was;
switch(i)
{
case testEnum.a:[/code]
warum soll das überhaupt gehen?
Java ist ein sprache mit Typenkonzept (Im Gegensatz zu C(++) )
du vergleichst einen int mit einem enum also Äpfel mit Backsteinen
Zum Wert kommt man schon, das ist kein Problem, aber einen Wert vorgeben kann man man IMO nicht. Es kommt draufan was du willst - man könnte z.B. eine Tabelle (HashMap?) hinterlegen ...
[code=Java]public class Test {
public enum Alphabet {
a, b, c
}
public static void main(String[] args) {
Alphabet buchstaben = Alphabet.a;
System.out.println(buchstaben.ordinal());
buchstaben = Alphabet.b;
System.out.println(buchstaben.ordinal());
switch (buchstaben) {
case a:
break;
case b:
break;
case c:
break;
}
}
}
[/code]
Warum das nicht geht verstehe ich allerdings nicht - Java sagt mir ja damit, dass eine Konstante (final) nicht konstant ist
[code=Java]public class Test {
public enum Alphabet {
a, b, c
}
private static final int a = Alphabet.a.ordinal();
public static void main(String[] args) {
int i = 1;
switch (i) {
case a: // case expressions must be constant expressions
break;
}
}
}
[/code]