Ich versuche class.getSimpleName() für den Ausdruck eines Schalters zu verwenden, aber es ist mir ein Fehler gibt:Java switch-Anweisung mit class.getSimpleName() gibt Constant express erforderlich Fehler
Constant express required
I‘ Ich habe Antworten gesehen, die vorschlagen, die Ausdruck-Variablendeklarationen so zu ändern, dass sie Initialisierer haben, die kompilierungszeitkonstante Ausdrücke sind. Dies ist jedoch in diesem Fall nicht möglich.
Gibt es eine Möglichkeit, einen Wechsel mit class.getSimpleName() durchzuführen, ohne die Klassennamen fest codieren zu müssen?
Beispielcode
public class ClassA {
public static final String TAG = ClassA.class.getSimpleName();
...
}
public class ClassB {
public static final String TAG = ClassB.class.getSimpleName();
...
}
public class SomeOtherClass {
switch (express) {
case ClassA.TAG: // Error here
...
break;
case ClassB.TAG: // and here
...
break;
default:
...
break;
}
@Eran Dies ist kein Problem mit dem Wert, auf den Sie wechseln, aber der Fall Werte selbst. –
@Eran Ja, ich benutze Java 7. – fahmy