我在代码中有一个内部类。我想让其实例可以公开访问,但只有外部类才能创建这些实例,就像“私有”访问一样。是否可能在不创建小包(或为每个这样的内部类创建公共接口)的情况下实现?
(如果我的英语不好,对不起 :P)
(如果我的英语不好,对不起 :P)
这是可能的。将内部类声明为public,但构造函数为private。这样,你只能在封闭类及其本身内部创建该类,但不能从外部创建。
所以将内部类的 private
public class Outer {
private class Inner {}
public String foo() {
return new Inner().toString();
}
}
你无法合法地调用私有默认构造函数,因为它是私有的。
Outer
对象应该可以访问构造 Inner
实例。现在清楚了吗?抱歉 :) - Krzysztof Stanisławek