Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 同步此延迟初始化_Java_Mysql - Fatal编程技术网

Java 同步此延迟初始化

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

同步这个延迟初始化在sonar中显示,我想通过静态类持有者习惯用法单例模式来解决这个问题,那么如何在静态类持有者习惯用法单例模式中进行同步呢

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)这样的参数时,该怎么办