簡體   English   中英

rt.jar com.sun.istack.internal包

[英]rt.jar com.sun.istack.internal packages

jre附帶了許多rt.jar中的庫,其中一個是com.sun.istack.internal *。 我需要com.sun.istack.internal.Nullable( 我發現谷歌在其CacheBuilder中使用它 )的文檔 ,我 首先想到的是去docs.oracle.com找到它的文檔,在那里我一無所獲。 接下來轉到源自jdk的源文件夾,我在所述文件夾中找不到com名稱實體。 接下來我看一下jre7的發布,看看所有的包和類,發現那里沒有提到Nullable。 雖然SO有一個提到它 ,但沒有什么具體的。 我仍然感到困惑,如果需要,在哪里獲得它的文檔和src。 我甚至在oracle看過遺留的sun api文檔,但沒有提到它。 oracle在哪里記錄有關移植包的政策以及它們是標准的還是非標准的。他們必須在某處記錄它只是因為我花了太多時間去那里。

請指點我。

編輯:實際上javax.annotation.Nullable正在谷歌CacheBuilder中使用,而不是com.sun.istack.internal.Nullable。 對於可能面臨此問題的人:javax.annotation.Nullable現在不是Java SE的一部分,它正在jsr305 jar中移植。 因此,如果您計划使用CacheBuilder或只是通過其代碼,請在類路徑中添加jsr305 jar,否則eclipse會混淆並指向com.sun.istack.intenal.Nullable,只要您將光標懸停在Nullable上。

Guava不使用com.sun.istack.internal.Nullable 官方Java SE javadoc中未記錄的所有內容都是內部代碼,不應在應用程序中使用。

您可能正在尋找javax.annotation.Nullable ,它是JSR305的一部分。

這是源代碼的鏈接:

(此鏈接將來可能會中斷,但您應該可以使用Google搜索找到相應的內容。)

您無法在標准JDK / JRE分發中找到源代碼或javadoc的原因是這是一個INTERNAL類。 有一個長期的Oracle / Sun策略阻止開發人員編寫依賴於Java內部類的代碼。

FWIW - 這只是一個注釋,其含義幾乎就是類名所暗示的含義。


更新 - 顯然,這種混淆的真正原因是你沒有在你的構建路徑中包含JSR305 jar。 它是CacheBuilder的依賴CacheBuilder 然后,Eclipse類名完成正在盡力......但失敗了。

暫無
暫無

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

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