transdenzentral
Lt. Junior Grade
- Registriert
- Sep. 2007
- Beiträge
- 384
Moin,
ich bin z.Z. dabei Java zu erlernen. Allerdings stellt sich mir gerade folgende Frage.
Kleines Beispiel:
Ich deklariere zwei Konstanten in Klasse a mit der Sichtbarkeit "public":
public static final int OBEN = 0;
public static final int UNTEN = 1;
Jetzt möchte ich auf diese Konstanten in der anderen Klasse b innerhalb einer Switch-Anweisung zugreifen, nach dem Motto:
Als Fehler bekomme ich jetzt "constant expression required", was klar ist, weil nach der Case Anweisung ein konstanter Wert folgen muss.
Was ich jetzt nicht verstehe ist, warum dies geschieht? Die Variablen sind als Konstanten vereinbart. Erfordert die Switch also einen definierten Ausdruck wie 1 2 3 4 ?
Kann ich das irgendwie sauber umgehen ?
ich bin z.Z. dabei Java zu erlernen. Allerdings stellt sich mir gerade folgende Frage.
Kleines Beispiel:
Ich deklariere zwei Konstanten in Klasse a mit der Sichtbarkeit "public":
public static final int OBEN = 0;
public static final int UNTEN = 1;
Jetzt möchte ich auf diese Konstanten in der anderen Klasse b innerhalb einer Switch-Anweisung zugreifen, nach dem Motto:
Code:
switch (Anweisung die "zufällig" 0 oder 1 ausspuckt)
{
case a.OBEN:
Anweisungen
break;
case a.UNTEN:
Anweisungen
break;
usw.
Als Fehler bekomme ich jetzt "constant expression required", was klar ist, weil nach der Case Anweisung ein konstanter Wert folgen muss.
Was ich jetzt nicht verstehe ist, warum dies geschieht? Die Variablen sind als Konstanten vereinbart. Erfordert die Switch also einen definierten Ausdruck wie 1 2 3 4 ?
Kann ich das irgendwie sauber umgehen ?