Sea*_*oyd 13
多个类加载器可能不是问题,只要枚举只能通过其中一个获得.如果情况并非如此,那么您将失去枚举的所有好处.
顺便说一句,使用equals()也无济于事.这是Enum.equals(Object)Java 1.6中的实现:
public final boolean equals(Object other) {
return this==other;
}
Run Code Online (Sandbox Code Playgroud)
如果你的枚举类只加载一次它仍然可以工作.
如果您的枚举类由不同的类加载器加载,它将无法工作
之所以这样
Java使用对象实例来表示不同的枚举值,这些实例中的每一个都存储为枚举类中的静态字段.如果枚举被加载两次,则每个枚举值由两个不同的对象实例表示.在== operator仅比较了引用,并不知道有表示枚举值的多个实例的,所以它会不匹配由不同类加载器加载的值.
| 归档时间: |
|
| 查看次数: |
2860 次 |
| 最近记录: |