2016-06-10 64 views
0

我剛剛遇到註釋,我開始使用它們。我做了其中有一個方法簽名與@NotNull PARAM像爲什麼不@NotNull引發編譯時錯誤?

interface { 
    public void test(@NotNull CustomObject c); 
} 

我實現的方法,在類

clazz implements interface 
{ 
@Override 
public void test(@NotNull CustomObject c) 
{ 
} 
} 

我預計new Clazz().test(null)抱怨,而我編一個接口,但事實並非如此。我使用的是基於Intellij構建的Android工作室。

如果這些註釋不會給我們編譯時間錯誤,那麼它們用於什麼?

+1

。 對於IntelliJ,您可以配置IDE每次在您的代碼中違反'@NotNull'合約時輸出警告(有關更多詳細信息,請參閱Jetbrains [docs](https://www.jetbrains.com/help /idea/2016.1/nullable-and-notnull-annotations.html)。 – codejanovic

回答

0

我認爲你使用它作爲錯誤的廁所。

@NotNull

的@NotNull註解是,實際上,聲明如下明示合同:

的方法不應返回null。 變量(如字段,局部變量和參數)不能包含空值。 有關更多信息和代碼示例,請參閱在線操作指南。

如果違反了這些合同,IntelliJ IDEA會向您發出警告。

請檢查資源鏈接,是的,你說得對,`@ NotNull`不是用來獲取默認情況下使用Java編譯時錯誤的詳細信息https://www.jetbrains.com/help/idea/2016.1/nullable-and-notnull-annotations.html

+0

明白了。 –

相關問題