簡體   English   中英

如何在包上使用NonNullByDefault

[英]How to use NonNullByDefault on a package

我的編譯器警告我A default nullness annotation has not been specified for the package 我正在使用Juno和Java 7。

您應該將@NonNullByDefault作為包選項添加文檔統計信息,但我不知道這意味着什么。

我可以以某種方式為整個包設置NonNullByDefault嗎? 在Eclipse中,我無法右鍵單擊包並說出add option或類似的東西。

或者我只是將@NonNullByDefault添加到包中的任何類,然后它對該包中的所有bean都有效? 或者我是否必須在pakage中創建一些元信息文件以添加包選項? 我必須是盲人,因為我在網上找不到任何幫助....

一個小例子會很棒。

摘要:
獲得上述建議對我來說並不直觀。 我剛剛想出的實際解決方案也不是。 在package-info.java文件中:
一個。 把注釋放在包聲明上面
在包聲明后輸入NonNullByDefault注釋


細節:
我不知道我是否是唯一一個閱讀上述答案並且無法弄清楚如何使其工作的人。 所以,為了更清楚,這里是我為了最終在Eclipse-Juno中工作而采取的(非顯而易見的或直觀的)步驟:

  1. 在Package Explorer中,轉到顯示警告(或錯誤)消息的根Java包,該消息以“ 尚未為包指定默認空值注釋...開頭 - 對於此示例,請假設包名稱為“org.public_domain” “
  2. 在Java包上,激活右鍵菜單並選擇“ New - > Package ”選項 - 是的,我知道你的包已經存在,認為它是一個eclipse特性 - 它不會對你現有的包做任何事情
  3. 出現“ New Java Package ”對話框時,選中“ Create package-info.java ”復選框,然后單擊“Finish”
  4. 您的Java編輯器現在將顯示一個名為“ package-info.java ”的新文件,其中包含以下內容:

     /** * */ /** * @author xyz * */ package org.public_domain; 
  5. 現在,重新排列文件內容,如下所示:

     /** * */ /** * @author xyz * */ @NonNullByDefault package org.public_domain; import org.eclipse.jdt.annotation.NonNullByDefault; 

    ......或者像這樣......

     /** * */ /** * @author xyz * */ @org.eclipse.jdt.annotation.NonNullByDefault package org.public_domain; 
  6. 享受eclipse @NonNullByDefault的精彩

我的挑戰是弄清楚我要把注釋放在包裝聲明上面 在程序包聲明后輸入NonNullByDefault批注 對我來說,這不直觀。

希望這能節省別人我已經結束燃燒追逐這條特殊途徑的時間。

如果您只是想擺脫警告並忽略此功能,因為您沒有使用它,您可以在Eclipse首選項中禁用它:

窗口>首選項> Java>編譯器>錯誤/警告>空分析>在包上缺少'@NonNullByDefault'注釋= [忽略]

查看源代碼或JavaDocs:

Note that for applying an annotation to a package a file by the name
package-info.java is used.

和:

@Target({PACKAGE,TYPE,METHOD,CONSTRUCTOR})

暫無
暫無

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

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