5

我的意思是,我可以使用 com.sun.org.apache(所有子包)类,因为我使用 org.apache(在任何 Apache 库中)中的类吗?

OpenJDK 是否会通过 apache 更新来维护这个包的最新状态?

而JDK7会维护这个包吗?

我在哪里可以找到这方面的信息?

4

4 回答 4

7

使用它是一个非常糟糕的主意。曾几何时,Sun 拿了一份 Xerces,里面塞满了虫子。他们做了一些改变。也许他们减去了一些错误。我们知道有许多非常严重的错误他们没有减去。

他们将其重命名为 com.sun.... 原因之一:告诉你不要使用它。在任何时候,在任何版本中,在任何补丁中,他们都可以不兼容地更改这些类或删除它们。

此外,这些类可能不在 IBM 的 JRE、Apple 或(哈哈)Microsoft 或 JRocket 的副本中。

如果您想要 Xerces,请使用 Xerces。要查找有关这方面的信息,请阅读 Xerces-j 邮件列表存档,以获取 Xerces 开发人员关于 Sun 分叉的版本的许多严厉警告。

这些类是正式“公开的”这一事实意味着 Sun 需要能够new从其他包中获取它们。

于 2010-05-07T20:49:14.320 回答
1

错误我不会,只是基于它们是内部类的事实,并且它们存在随时间变化的风险。请改用 org.apache 类。

不知道保持它们最新的意图,也许尝试在 openjdk 论坛上发布消息:

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

于 2010-05-07T20:25:04.557 回答
1

我的理解是这是 apache 代码的一个分支。在某一时刻,它们是相同的,但不再相同。因此,您不能指望两个版本中都存在相同的错误修复。

于 2010-05-07T20:27:49.187 回答
0

如果这个包的文档说它是公开的,那么它是可以使用的。

否则,当他们决定将来不支持它时,他们可以在你下面集中一层地板。

通常,你不应该依赖 JDK 中的 java 和 javax 以外的任何东西。

于 2010-05-07T20:26:09.063 回答