Оператор переключения 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.