Java 私有静态内部 Class

Java Private Static Inner Class

我只是在检查内部 classes 并且我知道我们可以声明私有和静态内部 class 但是我不明白我们可以通过声明内部 class 私有和静态。

class OuterClass {

    private static class InnerClass{
    }
}

因为这个 class 是私有的,所以其他 class 将无法访问 InnerClass,所以我认为 Static 无济于事。

在 java

中是否只是为了简单起见

通过使其成为静态的,您可以使其不需要对象。它仍然可供外部 class 内的其他代码使用,例如静态方法。

虽然 Elliot Sir 和 Sambit 给出了提示,但我在下面提供了我们使用 private static inner class 的地方。我们可以创建一个 Singleton class,它也是线程安全且不可变的。

public class Singleton  {    
    private static class Holder {    
        public static final Singleton INSTANCE = new Singleton();
    }    

    public static Singleton getInstance() {    
        return Holder.INSTANCE;    
    }    
}

它被称为持有人模式的初始化。

https://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom