我想使用一個java switch
語句,它使用class
名稱作爲case
常量。以某種方式可能嗎?還是我必須複製類名?是否有可能在java switch/case語句中使用類名?
下面的代碼不會因爲編譯器錯誤工作:
情況下表達式必須是常量表達式
String tableName = "MyClass1";
...
switch (tableName) {
case MyClass1.class.getSimpleName():
return 1;
case MyClass2.class.getSimpleName():
return 2;
default:
return Integer.MAX_VALUE;
}
這裏是問題(openjdk 1.8.0_45
)的在線演示:http://goo.gl/KvsR6u
你可以嘗試將字符串分配給最終的字符串局部變量嗎? –
哪個java版本?您將在Java 7/8上獲得不同的結果。 – Marged
@已收集我正在使用Java 8,但對任一版本的解決方案感興趣... – dedek