我在Java中使用CheckerFramework的依赖项来实现Spring应用程序
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
<version>1.9.4</version>
</dependency>
在IntelliJ下的Maven项目中。我安装了IntelliJ插件,可用here。但是,当我添加注释时,例如
import org.checkerframework.checker.igj.qual.ReadOnly; import org.checkerframework.checker.nullness.qual.NonNull;
@服务 公共类AService {
@Override
public void addSomething(final int[] @NonNull @ReadOnly something) {}
我收到消息Annotations are not allowed here
,我无法编译。我已经打开了插件的所有注释。
我该如何解决这个问题?
答案 0 :(得分:1)
您编写的语法不是合法的Java。
数组类型的注释在数组括号之前写入,而不是在它们之后。
如果您希望表明something
是一个非空的整数数组,那么请不要写int[] @NonNull something
。相反,写这样:
int @NonNull [] something