这与我在这个帖子中提供的问题的答案有关:内部类是轻量级的吗?
我记得从我的阅读中可以看出,如果你只能从一个匿名的内部类创建一个对象,那么,如果你想创建一个ActionListener
类并想要从这个类中创建多个对象(不使用反射),不是使用匿名的内部类,而是使用私有的内部类或类的立场,但人们告诉我,我错了.有人可以帮我澄清一下吗?请查看链接,因为它包含更多详细信息,但如果有任何不清楚的地方,请询问!
当我有私有方法或字段的内部类时,编译器必须创建合成的包受保护的访问器方法,以允许外部类访问这些私有元素(反之亦然).
为了避免这种情况,我通常会将所有字段和方法以及构造函数保护为包而不是私有.
但是班级本身的知名度如何呢?有没有开销
private static class A {
A(){}
}
Run Code Online (Sandbox Code Playgroud)
与
static class A {
A(){}
}
Run Code Online (Sandbox Code Playgroud)
请注意,构造函数在两种情况下都是受包保护的,或者是否使类私有更改?