Я хотел бы использовать оператор java switch
, который использует имена class
как константы case
. Возможно ли это как-то? Или мне нужно дублировать имена классов?
Следующий код не работает из-за ошибки компилятора:
выражения 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