#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.