簡體   English   中英

@Nonnull默認情況下在eclipse / kepler中

[英]@Nonnull by default in eclipse/kepler

在eclipse中,默認情況下可以為單個包設置非null。 有沒有辦法在所有包或一個包樹中設置它?

編輯

我在談論日食尊重和政策的@Nonnull注釋。 目前,我們將它們放在每個函數,每個參數的每個變量上。 我知道我們可以通過將屬性設置在package-info中來設置它們的包寬度,但是我們有數百個包,而且很容易錯過一個包。 我希望能夠設置eclipse說“默認情況下假設@Nonnull ,除非指定@Nullable ”。

如果在包上啟用編譯器選項“Missing'@NonNullByDefault'注釋”,Eclipse可以幫助您檢測缺少@NonNullByDefault的任何包。 默認情況下,此選項設置為“忽略”,根據需要設置為“警告”或“錯誤”。

請參閱http://help.eclipse.org/luna/topic/org.eclipse.jdt.doc.user/reference/preferences/java/compiler/ref-preferences-errors-warnings.htm?cp=1_4_2_0_3_1

試試這個可愛的小項目:

https://code.google.com/p/notnullcheckweaver/

它在每個使用@NotNull注釋的元素周圍插入空檢查

它的默認設置是@Nullable,所以你仍然應該注釋你的(root)包,讓它強制執行除@Nullable注釋元素之外的所有東西。

缺點:

  • 它引入了另一個@NotNull注釋,並且不允許其他注釋(例如java自己的@Nonnull,spring注釋等)
  • 它通過字節碼操作和java代理來工作

您確定要將@Notnull添加到項目中的每個函數,每個變量和每個參數(請記住,您有數百個包)嗎?

如果你的函數需要返回null或參數需要為null怎么辦?

我不認為這是個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM