2010-05-07 48 views
5

我的意思是,我可以使用com.sun.org.apache(所有子包)類,因爲我使用它們來自org.apache(在任何Apache lib中)?com.sun.org.apache與org.apache包相同嗎?

OpenJDK會不會通過apache更新來保持這個包是最新的?

而且JDK7會維護這個包嗎?

我在哪裏可以找到關於這方面的信息?

回答

6

使用它是一個非常糟糕的主意。曾幾何時,Sun拿出一份Xerces副本,塞滿了蟲子。他們做了一些改變。也許他們減去了一些錯誤。我們知道有很多非常嚴重的錯誤,他們沒有減去。

他們將其重命名爲com.sun ....出於以下原因:告訴您不要使用它。在任何時候,無論在任何時候發佈,在任何補丁中,他們都可以不相容地更改這些類,或者刪除它們。此外,這些類可能不在IBM的JRE或Apple的副本中,或者(haha)Microsoft或JRocket中。

如果您想要Xerces,請使用Xerces。要找到關於這方面的信息,請閱讀Xerces-j郵件列表歸檔文件,瞭解Xerces開發人員關於Sun派生版本的嚴重警告。

事實上,這些類在形式上是「公開」的,除了Sun需要能夠從其他包中獲得new之外,沒有任何意義。

1

Err我不會,只是基於他們是內部類的事實,並且他們有隨時間變化的風險。改爲使用org.apache類。

沒有關於與保持他們最新的意圖,也許嘗試在OpenJDK的論壇上發帖留言的想法:

http://mail.openjdk.java.net/mailman/listinfo

0

如果此包的文檔說,這是公開的,那麼它的確定使用。

否則,他們可以在他們下面決定不支持它的時候在地板下面鋪一層地板。

通常,除JDK中的java和javax之外,不應該依賴其他任何東西。

+2

org.w3c ...別忘了。 – bmargulies 2010-05-07 20:50:17

1

我的理解是,這是apache代碼的一個分支。有一點他們是一樣的,但沒有更多。所以你不能指望在兩個版本中都存在相同的錯誤修復。