Ответ 1
Проблема не в коде, а на уровне компилятора. Просто проверьте настройки IDE и установите уровень компилятора в 1.7 или выше.
Итак, я хочу ввести число, а затем имя человека или что-то еще. Нет проблем с этим, но почему я не могу поставить 2 исключения ошибок в 1 блок?
while (true) {
try {
int id = Integer.parseInt( reader.readLine() );
String name = reader.readLine();
if (name.equals("")) {
break;
}
map.put(name, id);
} catch (NumberFormatException | IOException e) {
break;
}
}
Когда я пытаюсь распечатать свое значение, я получаю NumberFormatException
for (Map.Entry<Integer, String> pair: map.entrySet()) {
int id = pair.getKey();
String name = pair.getValue();
System.out.println(id + " " + name);
}
Проблема не в коде, а на уровне компилятора. Просто проверьте настройки IDE и установите уровень компилятора в 1.7 или выше.
Если вы используете IntelliJ и правильно установите его на 7.0 по следующему пути и все еще не сработали:
Файл → Структура проекта → Настройки проекта → Проект → Уровень языка проекта
Установите в модуле:
Файл → Структура проекта → Настройки проекта → Модули → Уровень языка проекта
В моем случае явная конфигурация в моем pom.xml
сделала трюк. Параметр IntelliJ в меню Файл → Структура проекта → Проект → Уровень языка проекта был установлен на мой JDK 1.7, но среда ID игнорировала эту настройку.
Я использовал Maven Compiler Plugin для указания исходной и целевой версии как 1.7
Чтобы сделать это, в разделе <plugins>
добавьте следующие строки:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>