Spring中的注解——@nullable和@notnull


@nullable和@nutNull

  在寫程序的時候你可以定義是否可為空指針。通過使用像@NotNull和@Nullable之類的annotation來聲明一個方法是否是空指針安全的。現代的編譯器、IDE或者工具可以讀此annotation並幫你添加忘記的空指針檢查,或者向你提示出不必要的亂七八糟的空指針檢查。IntelliJ和findbugs已經支持了這些annotation。這些annotation同樣是JSR 305的一部分,但即便IDE或工具中沒有,這個annotation本身可以作為文檔。看到@NotNull和@Nullable,程序員自己可以決定是否做空指針檢查。順便說一句,這個技巧對Java程序員來說相對比較新,要采用需要一段時間。

用法

  如果可以傳入NULL值,則標記為@Nullable,如果不可以,則標注為@Nonnull。那么在我們做一些不安全嚴謹操作的編碼操作時,這些注釋會給我們一些警告。如下是我看spring源碼時,發現用到@Nullable,借此源碼做個測試:

public FileSystemXmlApplicationContext(String[] configLocations, boolean refresh, @Nullable ApplicationContext parent) throws BeansException { super(parent); this.setConfigLocations(configLocations); if (refresh) { this.refresh(); } }

我們把@Nullable改成@Nonnull,然后發現調用該方法的地方出現告警:

public FileSystemXmlApplicationContext(String... configLocations) throws BeansException { // here warning 
     this(configLocations, true, (ApplicationContext)null); }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM