我正在尝试在我的代码中为延迟加载的数据库连接管理器实现 Initialization On Demand Holder 习惯用法
Class ConfigurationAgent{
private ConfigurationAgent(){
String baseDir = "XYZ";
}
private static class LazyLoader{
private static final ConfigurationAgent instance = new ConfigurationAgent();
}
public static ConfigurationAgent getInstance(){
ConfigurationAgent cfg = LazyLoader.instance;
return cfg;
}
}
现在我正在使用下面的另一个类调用这个 ConfigurationAgent 的实例:
ConfigurationAgent agent = ConfigurationAgent.getInstance();
在这种情况下,我收到 ExceptionInInitializerError 后跟 java.lang.NoClassDefFoundError 错误。
我的猜测是静态类 LazyLoader 没有正确加载,因此调用“LazyLoader.instance”会出现此问题。(此问题在以下 wiki 链接中提到,但没有任何解决方案http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom)请让我知道如何解决此问题