我一直在网上搜索与 java 中的枚举类相关的一些查询的答案。
我很想知道枚举类的内部结构,因此我打开了源代码并发现了一些方法,如下所示 --
protected final void finalize() { }
我在那里找到了 finalize 方法,它是一个空白的实现,并且没有正确注释。所以我的问题是为什么枚举类不能有 finalize 方法意味着在枚举类中有 finalize 方法是否有任何危害,或者这背后是否有任何其他原因。
看到这个类,我更加困惑了。任何帮助将不胜感激。提前致谢。
最佳答案
Enum
类在 JVM 的单个安装中每个枚举值只有 1 个实例。它们本质上是 JVM 上的单例。
在 Oracle JVM 上很容易证明这一点,因为对象的默认标识哈希码是内存地址。然后当你设置一个Enum
实例时,你可以在你的程序的任何地方看到,它实际上是同一个对象。
关于java - 为什么枚举常量没有 finalize 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34587016/