2

Java 中的所有其他类都继承自Object类。

是否可以基于我自己的FastObject类在 Java 中添加第二个完全独立的类层次结构?

我这样做的最初目标是创建更小、更快的对象,并且专门为某些算法设计的功能更少。但让我明确一点,我对这是否是一个“好主意”不感兴趣。我只是想知道这是否可能;我一直无法找到这样做的方法。是否需要更改 JVM?新的引导类路径功能?真正的解决方案是忽略Object并考虑更换java.lang.Class吗?使用直接 Java 编译器而不是 VM 会让我的工作更轻松吗?

需要明确的是,我不只是想编辑根Object类。这可能需要重新编写整个 Java 库。我不想替换当前的层次结构,我只想创建一个可以在同一代码中使用的单独的层次结构。

4

2 回答 2

2

不,这是不可能的。

所有创建的类都显式或隐式扩展另一个类。如果您创建一个类并明确定义它扩展的类,那么它会扩展该类。如果不是,则它隐式扩展Object. 没有办法解决这个问题,就像没有办法重载运算符或类似的东西一样。它是 Java 编程语言的基本设计决策。

所有类都扩展Object. 唯一不是原始类型的东西。当然,它本身是个例外Object,它不会扩展自身。

于 2012-09-19T19:59:32.170 回答
1

您可以通过使用引导类路径来注入自己的 Object 实现。但是,我认为没有任何方法可以使用 Object 以外的基础对象。您可以尝试一些字节码操作,但您修改的类完全有可能被类加载器拒绝。

于 2012-09-19T19:58:14.860 回答