【发布时间】:2017-03-23 18:34:48
【问题描述】:
我正在随机编写代码并遇到一个问题:如何实例化定义在匿名内部类中的类 E(如下所示);喜欢:
A c = new A() {
class E{ //Statements
}
};
【问题讨论】:
-
为什么不在A之外声明匿名类呢?在这种情况下,您可以在 A 中使用它。
-
不,因为它是一个内部匿名类来实例化他必须被看到的东西(比如说外部)并且它必须是知道的(不是真的,但也许一直都是)但是是匿名的,所以不跨度>
-
@MohammedHousseynTaleb:请说清楚一点。
-
对不起我的英语不好,但我想说的是关于逻辑,实例化是关于可见性,在你的情况下,一个内部匿名类在他的父类之外不可见(比如说 scoop),更多我们必须注意,您的示例更难,因为您的匿名内部类只是您的实例 new A() 的属性(数学上说)。所以试着成为一个人性化的班级,你想调用隐藏在我口袋里的我的内心班级,知道这个班级有人不认识的人已经做到了……这在某种程度上是哲学的,所以试着阅读更多关于 OO 范式的信息。
-
@SuyashJain 回答如下,它需要一个解决方法,因为要访问它需要一个标识符,因此我在下面的答案中提出了一个解决方案,通过使用接口来访问它
标签: java anonymous-inner-class