我为Spring应用程序使用Java中CheckerFramework的依赖项

    <dependency>
        <groupId>org.checkerframework</groupId>
        <artifactId>checker-qual</artifactId>
        <version>1.9.4</version>
    </dependency>


在IntelliJ下的Maven项目中。我安装了here可用的IntelliJ插件。但是,当我添加注释时,例如

导入org.checkerframework.checker.igj.qual.ReadOnly;
导入org.checkerframework.checker.nullness.qual.NonNull;

@服务
公共类AService {

@Override
public void addSomething(final int[] @NonNull  @ReadOnly something) {}


我收到消息Annotations are not allowed here,但无法编译。我已经打开了插件的所有注释。

我该如何解决?

最佳答案

您编写的语法不是合法的Java。

数组类型的注释写在数组括号之前,而不是后面。

如果要表示something是一个非null的int数组,请不要编写int[] @NonNull something。而是这样写:

int @NonNull [] something

09-08 00:43