当前位置: 首页 > 知识库问答 >
问题:

为什么java 7不能使用钻石运算符和multi-catch语句

帅银龙
2023-03-14

um使用Java7(1.7.0_67),项目语言级别设置为7-Diamond、ARM、multi-catch。我的代码如下,使用maven构建时抛出编译错误的行。

private Map<String, List<InstrumentationClassData>> classMap = new HashMap<>(); //line 36 in InstrumentingAgent

InstrumentingAgent行63中的多捕捉块

} catch (InstrumentationException | JAXBException e){
            e.getMessage();
}

编译时我遇到了以下错误。为什么它不起作用?我做错了什么。我正在使用IntelliJ IDE。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project instrumentation-agent: Compilation failure: Compilation failure:
[ERROR] /home/Documents/instrumentation-agent/src/main/java/org/wso2/das/javaagent/instrumentation/InstrumentingAgent.java:[36,79] error: diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] /home/Documents/instrumentation-agent/src/main/java/org/wso2/das/javaagent/instrumentation/InstrumentingAgent.java:[63,47] error: multi-catch statement is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable multi-catch statement)

根据我所读的钻石运算符应该与Java7一起工作。但是为什么我得到这个。如果我用相关类型填充钻石,那么IDE会将它们变成灰色,并说它可以替换为钻石运算符。但是当我替换时,它会出现以下错误。

共有1个答案

汤洋
2023-03-14

在pom中添加以下内容解决了编译错误,

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>
 类似资料: