um(使用Java 7(1.7.0_67))并将项目语言级别设置为7-钻石,ARM,多捕获。我的代码如下,使用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)
根据我所读的内容,钻石算子应该与Java 7一起使用。但是为什么我要使用它。如果我用相关的类型填充菱形,那么IDE会将它们变成灰色,并说可以用菱形运算符替换。但是当我更换它时,会出现以下错误。
在pom中添加以下内容可解决编译错误,
<plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin>