我的代码中有内部类。我希望公开访问它的实例,但只有外部类应该能够创建这个实例,就像在“私有”访问中一样。是否有可能在没有制作适当的小包装(或为每个这样的内部类创建公共接口)?
(对不起,如果我的英语不好:P)
答案 0 :(得分:24)
有可能。声明你的内部类是public,但是它的构造函数是私有的。这样,您只能在封闭类和自身内部创建它,而不能从外部创建它。
答案 1 :(得分:1)
默认情况下,如果要获取内部类的实例,则需要首先使用Outer类。
inner class是其封闭类的成员。
你不需要为此做任何事情。
非静态嵌套类(内部类)可以访问封闭类的其他成员,即使它们被声明为私有
我希望我能以正确的方式理解你的问题。
答案 2 :(得分:0)
所以让内部类private
。
public class Outer {
private class Inner {}
public String foo() {
return new Inner().toString();
}
}
你不能合法地调用私有默认构造函数,因为它是私有的