获取对匿名内部 class 的 class 对象的引用
Get the reference to the class object of an anonymous inner class
如何获取对 Java 中匿名内部 class 的 class 对象的引用?
使用非匿名 class 完成 ClassName.class
。
如果为了引用匿名你要求引用匿名 class,你的匿名 class 的 java.lang.Class
实例对象是你如何做到的。
如果将匿名 class 实例分配给变量 obj
,则可以使用 obj.getClass()
引用 class。该示例使用 Object
,但可以使用任何非 final
class 和任何接口。
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' 类型对象的引用(至少有反射),你不能这样做。
如何获取对 Java 中匿名内部 class 的 class 对象的引用?
使用非匿名 class 完成 ClassName.class
。
如果为了引用匿名你要求引用匿名 class,你的匿名 class 的 java.lang.Class
实例对象是你如何做到的。
如果将匿名 class 实例分配给变量 obj
,则可以使用 obj.getClass()
引用 class。该示例使用 Object
,但可以使用任何非 final
class 和任何接口。
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' 类型对象的引用(至少有反射),你不能这样做。