13

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

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

4

3 回答 3

26

有可能的。将您的内部类声明为 public,但将其构造函数声明为 private。这样,您只能在封闭类及其本身内部创建它,而不能从外部创建它。

于 2013-06-19T12:13:21.240 回答
1

默认情况下,如果要获取内部类的实例,首先需要有外部类。

内部类是其封闭类的成员。

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

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

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

参考。

于 2013-06-19T12:10:46.093 回答
0

所以使private内部类。

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

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

于 2013-06-19T12:15:13.807 回答