Java - 内部类构造函数 - 仅允许外部类

时间:2013-06-19 12:08:49

标签: java constructor inner-classes

我的代码中有内部类。我希望公开访问它的实例,但只有外部类应该能够创建这个实例,就像在“私有”访问中一样。是否有可能在没有制作适当的小包装(或为每个这样的内部类创建公共接口)?

(对不起,如果我的英语不好:P)

3 个答案:

答案 0 :(得分:24)

有可能。声明你的内部类是public,但是它的构造函数是私有的。这样,您只能在封闭类和自身内部创建它,而不能从外部创建它。

答案 1 :(得分:1)

默认情况下,如果要获取内部类的实例,则需要首先使用Outer类。

inner class是其封闭类的成员。

你不需要为此做任何事情。

  

非静态嵌套类(内部类)可以访问封闭类的其他成员,即使它们被声明为私有

我希望我能以正确的方式理解你的问题。

refer.

答案 2 :(得分:0)

所以让内部类private

public class Outer {
    private class Inner {}
        public String foo() {
            return new Inner().toString(); 
        }
}

你不能合法地调用私有默认构造函数,因为它是私有的