所以我想输入一个数字,然后输入一个人或其他人的名字。这没有问题,但为什么我不能在1个块中放置2个错误异常?
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);
}
答案 0 :(得分:20)
问题不在代码中,而是在编译器级别。只需检查IDE设置并将编译器级别设置为1.7或更高。
答案 1 :(得分:7)
如果您正在使用IntelliJ并在以下路径中将其正确设置为7.0,但仍无效:
档案 - &gt;项目结构 - &gt;项目设置 - &gt;项目 - &gt;项目语言水平
在模块中设置:
档案 - &gt;项目结构 - &gt;项目设置 - &gt; 模块 - &gt; 项目语言水平
答案 2 :(得分:4)
就我而言,我pom.xml
中的显式配置可以解决这个问题。 文件中的IntelliJ设置 - &gt;项目结构 - &gt;项目 - &gt;项目语言级别设置为我的JDK 1.7,但IDE忽略了设置。
我使用Maven编译器插件将源版本和目标版本指定为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>