Java延迟加载枚举实例

时间:2012-02-23 06:42:20

标签: java enums lazy-loading

如果我在枚举类型中有一堆枚举实例,并且如果我第一次访问它的实例,那么它的所有剩余实例也会同时初始化。有没有办法在第一次访问时初始化枚举实例?

2 个答案:

答案 0 :(得分:9)

基本上不再使它不再是enum了。 Enums are classes。第一次使用类时,它由JVM加载并完成所有静态初始化。设置枚举成员是一个静态初始化,因此它们都将被初始化。

答案 1 :(得分:4)

您可以在使用时使实例延迟加载。即构造函数实际上并不执行昂贵的工作。在这些枚举的方法中,您将checkLoaded()方法添加到需要此方法的方法中。这不一定是每种方法都取决于它的作用。