【发布时间】:2015-03-11 10:20:08
【问题描述】:
release notes for Java 8 Update 40 (8u40) 状态:
认可的标准覆盖机制和扩展机制 已弃用,可能会在将来的版本中删除。没有 运行时变化。使用“认可标准”的现有应用程序 建议迁移“覆盖”或“扩展”机制 避免使用这些机制。
还有一个问题澄清了 Jigsaw(计划用于 Java SE 9,AFAIK)将以某种方式被模块化方法取代:
http://bugs.java.com/view_bug.do?bug_id=8065675
我了解 Oracle 现在想要弃用这些机制,因为它们在 Java SE 9 中不再支持它们。
另一方面,在不提供替代方案的情况下弃用某些东西并不是一个好习惯。
发行说明指出:“现有应用程序 [...] 建议不要使用这些机制”
那么你怎么能“迁移离开”
- 认可的标准覆盖机制
- 扩展机制
在 Java SE 8 中?
【问题讨论】:
-
哪里说 Java 9 不支持?
-
@EJB 这就是我的理解。例如。在问题中:“展望未来,我们希望通过可升级模块 [2] 的概念仅以模块化形式支持认可的标准和独立 API。”也许我也在其他资源中读到了一些关于此的内容。 AFAIK Jigsaw 计划用于 Java SE 9。但同样,这至少是我目前的理解,不一定是事实。您还有其他相关信息吗?
-
'Going forward' != Java 9. 你过度恐慌了。他们没有提到目标版本或时间表。我认为你是安全的,直到至少一个主要版本通过同时存在两种机制:可能是两个或更多。
-
@EJP,也许你是对的。不过,有没有办法像 8u40 发行说明中建议的那样“迁移”,这样我们就可以为新情况做好准备并避免使用已弃用的功能?还是只有 Jigsaw 才能做到这一点(但此时该建议至少令人困惑)?
-
@EJP 一些背景信息:这不仅是一个理论问题,而且我目前处于一种情况,我认为我必须在我正在编写的框架中使用一个认可的库。阅读这些发行说明,我意识到我将使用一些已经被弃用的东西。所以我的问题是:当时有更好的方法吗?相关问题是:stackoverflow.com/questions/26769891/…