获取对匿名内部类的类对象的引用

时间:2015-06-16 11:02:31

标签: java anonymous-class

如何在Java中获得对匿名内部类的类对象的引用?

对于非无限类,使用ClassName.class完成。

1 个答案:

答案 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'的对象可以使用(至少用反射),你不能这样做。