Java 同步此延迟初始化
同步这个延迟初始化在sonar中显示,我想通过静态类持有者习惯用法单例模式来解决这个问题,那么如何在静态类持有者习惯用法单例模式中进行同步呢Java 同步此延迟初始化,java,mysql,Java,Mysql,同步这个延迟初始化在sonar中显示,我想通过静态类持有者习惯用法单例模式来解决这个问题,那么如何在静态类持有者习惯用法单例模式中进行同步呢 public final class ContainerFactory { private static final int SPLIT_PANE = 1; private static final int TABBED_PANE = 2; private static TopLevelContainer Container = null; p
public final class ContainerFactory {
private static final int SPLIT_PANE = 1;
private static final int TABBED_PANE = 2;
private static TopLevelContainer Container = null;
public static TopLevelContainer getTopLevelContainer()
{
if(Container == null)
{
int containerType = Integer.parseInt(System.getProperty("NUEVO_CONTAINER", "1"));
switch(containerType)
{
case SPLIT_PANE:
Container = new SplitPaneContainer();
break;
case TABBED_PANE:
Container = new TabbedPaneContainer();
break;
}
}
return Container;
}
}类似这样的内容:
public class Singleton {
private Singleton() {}
private static class SingletonHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}
在课堂上:
public final class ContainerFactory {
private static final int SPLIT_PANE = 1;
private static final int TABBED_PANE = 2;
private static class TopLevelContainerHolder {
private static TopLevelContainer CONTAINER = createSingleton();
}
private static TopLevelContainer createSingleton() {
int containerType = Integer.parseInt(System.getProperty("NUEVO_CONTAINER", "1"));
switch (containerType) {
case SPLIT_PANE:
return new SplitPaneContainer();
case TABBED_PANE:
return new TabbedPaneContainer();
default:
throw new IllegalStateException("Unhandled container type: " + containerType);
}
}
public static TopLevelContainer getTopLevelContainer() {
return TopLevelContainerHolder.CONTAINER;
}
}
当传递像getToLevel容器(Stirng operationType)这样的参数时,该怎么办