2016-03-29 77 views

回答

1

是......有点。类型注释是在Java 8中引入的,因此它们在Java 7中完全不起作用。例如,JSR 308的OpenJDK实现位于OpenJDK 8 JDK中。所以你不能使用它。

但是你可以使用checker框架来解决这个问题,允许你在Java 7中注释类型注释,但仍然使用它们。安装描述为here。你需要以下Maven的依赖:

<dependency> 
    <groupId>org.checkerframework</groupId> 
    <artifactId>checker</artifactId> 
    <version>1.9.12</version> 
</dependency> 
+0

谢谢。我会检查的。 – Aure77

0

通过了“Java 7的工程”,我想你的意思是“可以使用Java 7编译器编译一个项目”。类型注释是一个Java 8特性 - 比如lambdas,如果你使用它们,那么你的代码就不能用标准的Java 7编译器编译。

有一个特殊的编译器,type annotations compiler,读取类型注释written in comments,如List</*@NonNull*/ String>。当您使用普通Java 7编译器编译这样的文件时,该编译器会忽略注释。这是你的代码如何使用这两种类型的注释,并在兼容的Java 7

Checker Framework包特殊的编译器与注释处理器,警告不正确@NonNull注释和你的代码中可能的空指针异常在一起。 你可以看到它对annotations in comments的讨论。

Maven integration for the Checker Framework。你会想要选择Java 7的方向。