在我的 Android 应用程序中,我必须在第一个活动开始之前初始化很多静态对象。据我所知,静态变量在类加载时被初始化。所以,随着时间的推移,项目中静态对象的数量开始增长,现在我得到了 NullPointerExceptions。就我而言,静态对象可能会在其构造函数中调用其他静态对象。所以我的问题是:是否可以在某些静态变量依赖的变量之前对其进行初始化,从而导致 NullPointersExceptions?那可能吗?代码示例:
private static class HardwareManagersHolder implements HardwareManagers, IManagers {
private final AtomicBoolean senderAcquire = new AtomicBoolean(false);
private final AtomicInteger receiverAcquire = new AtomicInteger(0);
public IAudioManager audioManager;
public IVideoManager videoManager;
public IVibrationManager vibrationManager;
public IBatteryHelper batteryHelper;
@Override
public void configureManager() {
audioManager = AudioHelper.getInstance();
vibrationManager = VibrationManager.getInstance();
videoManager = VideoManager.getInstance();
batteryHelper = BatteryHelper.getInstance();
}
和一个对象持有人:
public class VideoManager implements IVideoManager {
private static class VideoManagerHolder {
public static final VideoManager VIDEO_MANAGER_INSTANCE = new VideoManager();
}
public static VideoManager getInstance() {
return VideoManagerHolder.VIDEO_MANAGER_INSTANCE;
}
倚天杖
子衿沉夜
相关分类