gpt4 book ai didi

java - JDK9+ 中 JDK8 或更低版本中 java.util.SubList 类的等效类

转载 作者:太空宇宙 更新时间:2023-11-04 09:39:28 27 4
gpt4 key购买 nike

如果我们使用JDK8及以下版本,rt.jar中定义了一个名为java.uti.SubList的类。

以下代码在 JDK8 或更低版本中运行良好:

Class c = Class.forName("java.util.SubList");

现在我已经迁移到JDK9及更高版本,我无法执行相同的代码。它抛出ClassNotFoundException。有人知道这个问题的修复方法吗?我尝试添加 java.se 模块但没有用。

我尝试添加JDK9的各种模块但没有成功。

Class c = Class.forName("java.util.SubList");

我希望该代码能够在 JDK9+ 中成功运行。

问这个问题的原因是:

我问这个问题的原因是,我在我的 java 项目中使用 kryo-serializers 库 ( https://github.com/magro/kryo-serializers )。

那些人使用了这个“java.util.SubList”类。 https://github.com/magro/kryo-serializers/blob/master/src/main/java/de/javakaffee/kryoserializers/SubListSerializers.java#L267该项目在 JDK9 中得到了突破。我已要求他们调查此事,但没有回应。 https://github.com/magro/kryo-serializers/issues/112

我想克隆该项目并通过在 JDK9 中查找 java.util.SubList 的等效项来自行修复问题。这就是我需要帮助的地方。

最佳答案

正如@Thilo在评论中所说,该类是包的私有(private)类,它不是接口(interface)的一部分,因此不应该被外部用户使用。

这就是为什么您不应该生成依赖它的代码的原因,因为它可能会在没有任何通知的情况下被包删除(就像在 JDK9 中发生的那样)。

您应该只使用公共(public)LinkedListArrayList或类似的。

关于java - JDK9+ 中 JDK8 或更低版本中 java.util.SubList 类的等效类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56144788/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com