【发布时间】:2017-10-16 15:12:21
【问题描述】:
我正在尝试从com.sun.tools.javac.util 访问List 类。这适用于 Java 8,但切换到 Java 9 时出现以下错误:Package 'com.sun.tools.javac.util' is declared in module "jdk.compiler", which does not export it to the unnamed module"。
我尝试将requires jdk.compiler; 添加到我的module-info 文件中,但这并没有解决问题。
【问题讨论】:
-
在JDK9中你需要使用
javax.tools。未导出包中的类不可用。 -
@bramhaag 该包已在 Java 9 中被弃用。您应迁移到它们的等效实现,可以通过查看您的代码本身来描述。
-
我只是查看了那个类,没有看到任何解释为什么开发人员可以需要该列表类而不是仅仅使用,例如
ArrayList或标准工厂方法返回的专用列表之一。 -
FWIW,这个类是Martin Odersky(Scala的设计师)在1.2天内写的。 Scala 的 List 的早期版本看起来非常相似。
-
文件顶部附近的评论:“这不是任何受支持的 API 的一部分。如果您编写依赖于此的代码,则后果自负。此代码及其内部接口是如有更改或删除,恕不另行通知。” hg.openjdk.java.net/jdk9/jdk9/langtools/file/jdk-9+181/src/…
标签: java java-9 java-module sun