2017-07-25 67 views
2

我的java方法可以返回null和非空結果。我想用@Nullable註釋標記方法使其更具可讀性。Java。我應該使用哪個@Nullable來標記返回值?

我使用了com.sun.istack.internal.Nullable,但是聲納表示不應使用來自「sun。*」包的類。代碼氣味主要魷魚:S1191

我試圖找到更多類似的註釋,但有不同IDE的變體,而不是來自java供應商。

java(oracle)是否提供可替換的可空註釋或我應該只使用第三方庫?如果我必須使用第三方庫有一個@Nullable哪一個應該是好的?

+4

使用[JSR 305](https://jcp.org/en/jsr/detail?id=305)中的'javax.annotation.Nullable'而不是內部的Sun類。您可以在例如[com.google.code.findbugs:jsr305](http://search.maven.org/#artifactdetails%7Ccom.google.code.findbugs%7Cjsr305%7C3.0.2%7Cjar) – Jesper

+4

中找到該註釋你可以返回'可選' – dehasi

+0

相關/重複:[在javax.annotation。*中找不到@Nullable。](https://stackoverflow.com/questions/19030954/cant-find-nullable-inside-javax-註釋) – Aaron

回答

2

爲了使其更具可讀性,請考慮使用Optional<T>作爲返回類型,使用它可以使用類型系統表示選擇性並受益於類似豐富monadic的API。從java-doc的

1

Optional<T>@Nullable@return標籤辦法說你的API的用戶,一個方法可以返回null。但是你在評論中提到你的方法是private。這意味着除你以外沒有人可以使用它。這就是爲什麼不需要額外的東西。

相關問題