2015-08-20 73 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