Оператор переключения Java 7 с неработающими строками
Согласно Учебники Java, в Java SE 7 и позже вы можете использовать объект String в выражении оператора switch.
String s = ...
switch(s){
//do stuff
}
Но так ли это? Я установил JRE и добавил его в путь сборки моего проекта Eclipse, но я получаю следующую ошибку времени компиляции:
Невозможно включить значение типа Строка. Только конвертируемые значения int или enum константы разрешены
Кроме того, я думаю, что он настроен правильно, так как я смог использовать его класс java.nio.file.Files
, а также JLayer
.
Любые идеи?
Ответы
Ответ 1
Правда, команда JDT реализовала функцию Switch on String, поддержка Java 7 не будет до Eclipse 3.7 0,1:
См. ошибка 288548:
Из-за поздней доступности JSR-292 (Invoke Dynamic) и JSR-334 (Project Coin) и из-за официальной даты выпуска (28 июля 2011 г.) Java 7 после 3.7 мы должны были отложить поддержку Java 7 до 3.7.1. Это еще не принято будет ли это доступно как часть загрузок 3.7.1 или как отдельный обновления функций.
Работа над функциями Java 7 в настоящее время выполняется в 'BETA_JAVA7' и мы предоставим отдельные обновления для стабильных построек, чтобы обеспечить ранний доступ к функциям Java 7 для заинтересованных сторон.
Ответ 2
Eclipse еще не поддерживает компиляцию на JDK 7, для того, чтобы попробовать новую функцию, вам нужно использовать NetBeans 7 или компилировать со стандартным компилятором javac в комплекте JDK 7 вручную или с помощью ant script.
Ответ 3
Используйте Eclipse 3.8 (первая веха появилась несколько дней назад). Не забудьте установить параметры компилятора в Java 7.