Невозможно включить строку в JRE7

#java #switch-statement

#java #switch-оператор

Вопрос:

Я на jre7, и я все еще не могу включить строки. Я установил обновление jdk7 1 и указал на него Eclipse, но все равно не повезло. Есть идеи, что я делаю не так?

Вот код:

 String code = "something";
switch(code) {
    case "xxx": dosomehting(); break;
    default: dosomethingelse(); break;
}
 

Ошибка, которую я получаю:

Невозможно включить значение типа String. Разрешены только конвертируемые значения int или константы enum.

Комментарии:

1. У вас есть версия Eclipse, которая поддерживает Java SE 7? (например, версия 3.7 должна быть в порядке AFAIK)

2. Я на 3.7, тогда все должно быть в порядке.

3. Для полной поддержки Java 7 вам нужен Eclipse 3.7.1.

Ответ №1:

Я почти уверен, что Eclipse 3.7 поддерживает только jdk 1.6. Вам нужен 3.7.1 в соответствии с http://download.eclipse.org/eclipse/downloads/drops/R-3.7.1-201109091335/index.php

(Помните: Eclipse не использует компилятор suns, они используют свой собственный, поэтому установки jdk 1.7 недостаточно).

Просто откройте eclipse и выберите справка-> Проверить наличие обновлений. — Это должно обновить вас до версии 3.7.1

Комментарии:

1. В свойствах -> Компилятор Java максимальный уровень, который я получаю для уровня соответствия компилятору, равен 1.6. Так что, я думаю, это запечатывает. Как я могу обновить Eclipse с 3.7 до 3.7.1?

2. Я добавил комментарий об обновлении с 3.7 до 3.7.1 — для меня это было довольно легко.

3. Спасибо, Amnesyc, я знаю, что это старая тема, но я только что столкнулся с этим сегодня в Eclipse 4.2.2 и, посмотрев на уровень компилятора, решил мою проблему.

4. Я сталкиваюсь с той же проблемой для версии Eclipse Kepler, т.е. 4.3.

Ответ №2:

Похоже, вы все еще пытаетесь скомпилировать под старым JDK [6 или более ранней версии] Установите JDK и убедитесь, что ваши настройки Eclipse отражают новую платформу. Дополнительно проверьте, отражает ли ваш проект платформу JDK7.

Комментарии:

1. Что я сделал, так это изменил путь сборки и сделал так, чтобы он указывал на новый jre, который находится в jdk7. Теперь Eclipse показывает системную библиотеку JRE [jdk1.7.0_01] в пути сборки. Что еще мне нужно сделать? Есть ли какой-нибудь способ изменить используемый компилятор?

2. Если есть способ, попробуйте заставить eclipse запускать javac-версию или тому подобное в качестве этапа post или предварительной компиляции. Я не использую eclipse, поэтому не могу дать вам точных подробностей. Однако Netbeans / IDEA используют интерфейс типа «выбор платформы» [например, VS] для переключения между платформами / версиями Java

Ответ №3:

Три вещи приходят на ум, чтобы проверить:

  • Убедитесь, что Eclipse по-прежнему не указывает на старую (6) установку JDK.
  • Убедитесь, что вы не выбрали более низкий уровень исходного кода для компиляции; например. -исходный код 1.6.
  • Убедитесь, что вы используете версию Eclipse, которая поддерживает синтаксис Java 7.