Java 8 删除了 sun.misc.Sort 和 sun.misc.Compare

  • Bienvenido David
  • 马德奎

2013 年 9 月 11 日

话题:Java语言 & 开发架构

在 Java 8 中,Oracle删除了 sun.misc.Compare 接口和 sun.misc.Sort 类。JDK 不再使用这两个旧的残留类。sun.misc.Compare 接口允许开发人员比较两个 Object 对象,并返回 int 值。sun.misc.Sort 类接收一个 sun.misc.Compare 类型的参数,并使用快速排序算法对 Object 对象数组进行排序。sun.misc 是 Sun/Oracle 的内部包,由于它不被公开支持,而且不能在所有 JVM 间移植,所以开发人员不应该使用这个包。

最初的建议是弃用这两个类,但在 OpenJDK核心库开发邮件列表的成员一致同意后,Oracle 就把它们从 JDK 中删除了。读者可以从话题“弃用 sun.misc.Sort 和 sun.misc.Compare”中读到整个讨论过程。另外,读者可以查看JDK-6852936,这是 Oracle JDK 中一个优先级为 4 的 Bug,用于提请删除 sun.misc 包中未使用的类。

sun.misc.Sort 的当前用户可以使用 java.util.Arrays 的 sort()作为更好的替代方法。sun.misc.Compare 的用户则可以用 java.util.Comparator 作为替代。

顺便说一下,Java 8 新增了 JDK 命令行工具 jdeps。该工具有助于开发人员了解其应用程序和库的静态依赖。它还有助于确定非标准和内部 API 的使用情况,这是对 Java 编译器警告信息的一个补充。关于这个新工具的更多信息,读者可以阅读话题“提供了一个用于发现静态依赖的命令行工具”。

关于“为什么不应该使用 sun.* 包”的更多信息,读者可以在 Oracle 官方 FAQ 上阅读该主题的相关条目

查看英文原文:Removal of sun.misc.Sort and sun.misc.Compare in Java 8

Java语言 & 开发架构