2 回答
![?](http://img1.sycdn.imooc.com/545868c20001b8c402200220-100-100.jpg)
TA贡献1828条经验 获得超3个赞
我试图用您提供的片段重建您的异常。我使用了以下代码:
public interface IVideoManager {}
public class VideoManager implements IVideoManager {
private static class HardwareManagersHolder {
public IVideoManager videoManager;
public void configureManager() {
videoManager = VideoManager.getInstance();
}
}
private static class VideoManagerHolder {
public static final VideoManager VIDEO_MANAGER_INSTANCE = new VideoManager();
}
public static VideoManager getInstance() {
return VideoManagerHolder.VIDEO_MANAGER_INSTANCE;
}
public static void main(String[] arg) {
System.out.println("Start test");
HardwareManagersHolder h = new HardwareManagersHolder();
h.configureManager();
if (h.videoManager == null) {
System.out.println("VideoManager is null");
}
System.out.println("Test finished");
}
}
此代码适用于我的机器。如果此代码不适用于您的代码,则说明存在其他错误。
![?](http://img1.sycdn.imooc.com/533e4c420001b2e502000200-100-100.jpg)
TA贡献1828条经验 获得超3个赞
您是否在静态构造函数中初始化它们?正是因为这个原因,他们会首先被召唤。
static
{
VIDEO_MANAGER_INSTANCE = new VideoManager();
}
添加回答
举报