我读了很多关于在 java 中实现单调模式的不同风格的论坛和帖子,似乎“枚举是在 java 中实现单调模式的最佳方法”!
我想知道如何使用 Java Enum 在 java 中实现 SingleTone 模式带有延迟加载能力。因为枚举只是类。第一次使用某个类时,它会被 JVM 加载并完成所有静态初始化。枚举成员是 static ,因此它们都将被初始化。
有谁知道我如何使用带有延迟加载支持的枚举?
您阅读的来源之所以说这是执行惰性单例的最简单方法,是因为它应该可以工作。尝试这个:
public class LazyEnumTest {
public static void main(String[] args) throws InterruptedException {
System.out.println("Sleeping for 5 seconds...");
Thread.sleep(5000);
System.out.println("Accessing enum...");
LazySingleton lazy = LazySingleton.INSTANCE;
System.out.println("Done.");
}
}
enum LazySingleton {
INSTANCE;
static { System.out.println("Static Initializer"); }
}
这是我在控制台中得到的输出:
$ java LazyEnumTest
Sleeping for 5 seconds...
Accessing enum...
Static Initializer
Done.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)