Эта функция будет добавлена в более позднюю версию Java?
Может кто-нибудь объяснить, почему я не могу сделать это, например, в техническом смысле, как работает оператор switch в Java?
switch
Не очень красиво, но вот другой способ для Java 6 и ниже:
String runFct = queryType.equals("eq") ? "method1": queryType.equals("L_L")? "method2": queryType.equals("L_R")? "method3": queryType.equals("L_LR")? "method4": "method5"; Method m = this.getClass().getMethod(runFct); m.invoke(this);
Когда вы используете intellij, посмотрите также:
Файл -> Структура проекта -> Проект
Файл -> Структура проекта -> Модули
Если у вас несколько модулей, убедитесь, что вы установили правильный уровень языка на вкладке модуля.
public class StringSwitchCase { public static void main(String args[]) { visitIsland("Santorini"); visitIsland("Crete"); visitIsland("Paros"); } public static void visitIsland(String island) { switch(island) { case "Corfu": System.out.println("User wants to visit Corfu"); break; case "Crete": System.out.println("User wants to visit Crete"); break; case "Santorini": System.out.println("User wants to visit Santorini"); break; case "Mykonos": System.out.println("User wants to visit Mykonos"); break; default: System.out.println("Unknown Island"); break; } } }
Это легкий ветерок в Groovy; Я встраиваю groovy jar и создаю служебный класс groovy, чтобы делать все эти и другие вещи, которые я считаю раздражающими в Java (поскольку я застрял на Java 6 на предприятии.)
groovy
it.'p'.each{ switch (it.@name.text()){ case "choclate": myholder.myval=(it.text()); break; }}...