【发布时间】:2015-05-29 20:16:05
【问题描述】:
我想对我的外部类隐藏我的内部类的实例化细节。 我的内部类需要是非静态的才能访问外部的变量
如果我尝试编写一个 buildNew() 静态方法,它会抛出一个错误,因为内部类中似乎不可能有静态方法。
我是否必须放弃该功能并在父级中实例化内部类,或者将所有父级的变量传递给内部才能获得静态资格?
【问题讨论】:
-
“我的内部类需要是非静态的才能访问外部的变量”——不完全正确;您可以将外部类的实例传递给静态内部类的构造函数。
-
我在最后一句话中建议的两种放弃选择之一
-
哦,好吧 - 我不太明白“所有父母的变量”可能意味着什么,所以我没有意识到。
-
感谢您的帮助,确实是一个非常有用的观点,只是我很挑剔:p
-
我认为“隐藏”任何东西和“使用内部类”是矛盾的。毕竟,外部类甚至可以调用内部类的
private构造函数。如果你想要真正的封装,你不应该使用内部类……
标签: java class static java-8 inner-classes