我不清楚我們如何正確使用關於可爲空的註釋,即NonNull和Nullable。
我不喜歡的東西下面真的很舒服:理解非空和空性註釋
public void foo(@NonNull ArrayList<CustomObject> list) {
CustomObject o = list.get(0); //etc
}
1)它是無感申報非空和代碼防守?
2)什麼是使用這種註釋最有效的方法?例如。作爲示例
- 在使用構建器模式時應該如何使用它們或者
- 何時定義要實現的具體類的接口?實現類的方法是否應該包含註釋還是假設?
3)在上面的代碼片段中,有沒有一種方法可以定義非空的和非空?
我通常用'@ NonNull'當我知道一個變量是保證不爲空。據我所知,它對編譯代碼沒有任何影響,但是在IDE中禁止了所有「可能爲null」的警告。相反,我使用'@ Nullable',在那裏有*我希望*變量爲null的場合。 –
@MichaelDodd:在審查你的代碼時,這不是爲了你自己的自我記錄目的嗎?關於* other * devs將使用/訪問的方法怎麼樣一種實用方法或方法是否意味着成爲模塊或庫的一部分? – Jim
我想文檔和可讀性是'android-annotations'的全部目的。在我工作的團隊中,我們廣泛使用這些註釋來澄清變量可能/不應該爲null。同樣,如果庫方法a是這樣註釋的,它會變成關於是否需要「空」檢查的建議。 –