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
我只是在检查内部 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