2015-08-20 89 views
0

我使用的CheckerFramework在Java中的依赖于的IntelliJ下一个Maven项目Spring应用程序的IntelliJ CheckerFramework插件

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

。我安装了IntelliJ插件,可用here。但是,当我添加注释时,例如

import org.checkerframework.checker.igj.qual.ReadOnly; import org.checkerframework.checker.nullness.qual.NonNull;

@Service 公共类AService {

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

我得到的消息Annotations are not allowed here,我不能编译。我已经打开了插件的所有注释。

我该如何解决这个问题?

回答

1

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

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

如果您希望指出something是一个非空的整数数组,那么请勿写int[] @NonNull something。相反,这样写:

int @NonNull [] something