【发布时间】:2018-09-21 20:20:01
【问题描述】:
我是 java 新手,想了解匿名内部类的工作原理。
Object a = new Object(){
Object b = new Object(){
String c = "Hi!";
};
};
System.out.println( a.b.c );
当我尝试运行上面的代码时,我收到“找不到符号”错误。有人可以解释一下为什么会出现这个错误,我该如何引用字符串 c。
(我尝试“可能很奇怪”的原因是我想以分层方式组织小部件句柄,例如“ui.menu.file.open”。)
【问题讨论】:
-
a的类型是Object,而b不是其接口的一部分。为此,您需要一个非匿名类。 -
如果您想要分层常量,请尝试嵌套类,例如,
class Ui { class Menu { class File { static final String OPEN = "foo"; }}}
标签: java anonymous-class