Ich versuche, class.getSimpleName () für den Ausdruck eines Schalters zu verwenden, aber es gibt mir einen Fehler:
Konstante Express erforderlich
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, mit class.getSimpleName () einen Wechsel zu machen, ohne die Klassennamen fest codieren zu müssen?
Beispielcode
%Vor%Gibt es eine Möglichkeit, mit class.getSimpleName () einen Wechsel zu machen, ohne die Klassennamen fest codieren zu müssen?
Nein. Grundsätzlich zählt der Aufruf von Class.getSimpleName()
nicht als kompilierbarer Konstantenausdruck, daher kann er nicht als case-Anweisung verwendet werden. Es wäre nett, wenn es einen Operator nameof(...)
gäbe, wie es in C # 6 sein wird, aber ohne das, glaube ich nicht, dass Sie einen Schalter / Fall verwenden können, ohne die Namen hart zu kodieren.
Tags und Links java switch-statement