日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

@Nullable 注解的用法

發布時間:2023/11/29 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 @Nullable 注解的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題:@Nullable 注解的用法

我看到java中的一些方法聲明為:

void foo(@Nullable Object obj){}

在這里@Nullable是什么意思?這是不是意味著輸入可以為空?

沒有這個注解,輸入仍然可以是null,所以我猜這不是它的用法?

回答一

它清楚地說明了這個方法接受空值,而且如果你重寫該方法,你也應該接受空值。

它也可以作為像FindBugs這樣的代碼分析器的提示。例如,如果這樣一個方法不首先檢查空值就間接引用它的參數,FindBugs就會發出警告。

回答二

這個注解通常用于消除空指針異常。@Nullable表明該參數可能為null。一個很好使用例子就是谷歌Guice。在這個輕量級依賴注入框架中,你可以說明這個依賴項可能是空的。如果你試圖在沒有注解的情況下傳遞空值,這個框架就不會執行它的工作。

更重要的是@Nullable可以與@NotNull注解一起使用。在這里你可以找到一些正確使用它們的提示。IntelliJ中的代碼檢查也可以檢查注解并且幫助調試代碼。

回答三

當然,這里肯定有不同的想法,我的想法是,我不能強制“永遠不要傳遞空值”,因為我在處理不可控制的第三方的東西,例如API調用的東西,數據庫的記錄,之前程序員的東西等。所以我偏執地抗拒這種方法。因為你使用的是Java8或更高版本,有一種比if代碼塊更簡潔的方法。

public String foo(@Nullable String mayBeNothing) {return Optional.ofNullable(mayBeNothing).orElse("Really Nothing"); }

你也可以通過交換.orelse到orElseThrow(() -> new exception (" don ' send a null"))的位置來拋出一些異常。

如果你不想使用不會添加任何功能的@Nullable,為什么不直接將參數命名為mayB。所以你的想法是很清楚的。

文章翻譯自Stack Overflow:https://stackoverflow.com/questions/14076296/nullable-annotation-usage

總結

以上是生活随笔為你收集整理的@Nullable 注解的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。