如何在Java中获得对匿名内部类的类对象的引用?
对于非无限类,使用ClassName.class
完成。
答案 0 :(得分:6)
如果要引用匿名,请询问对匿名类的引用,这里的匿名类的java.lang.Class
实例对象就是你如何做到的。
如果将anonimous类实例分配给变量obj
,则可以使用obj.getClass()
引用该类。该示例使用Object
,但可以使用任何非final
类和任何接口。
Object obj = new Object() {
};
obj.getClass(); // Reference to the anonymous class
您也可以这样做,而无需显式创建像obj这样的变量,例如
Button b = ...;
b.addActionListener(new ActionListener() {
....
});
ActionListener[] listeners = b.getActionListeners();
for (ActionListener listener : listeners) {
System.out.println(listener.getClass()); // Prints the reference to the class
}
如果没有引用类型为'Anonymous'的对象可以使用(至少用反射),你不能这样做。