Java 获取对匿名内部类的类对象的引用
如何获得Java中匿名内部类的类对象的引用Java 获取对匿名内部类的类对象的引用,java,anonymous-class,Java,Anonymous Class,如何获得Java中匿名内部类的类对象的引用 对于非匿名类,它是通过ClassName.class完成的。如果要引用匿名类,请使用匿名类的java.lang.class实例对象执行此操作 如果将Anomous类实例分配给变量obj,则可以使用obj.getClass()引用该类。该示例使用对象,但可以使用任何非最终类和任何接口 Object obj = new Object() { }; obj.getClass(); // Reference to the anonymous class
对于非匿名类,它是通过
ClassName.class
完成的。如果要引用匿名类,请使用匿名类的java.lang.class
实例对象执行此操作
如果将Anomous类实例分配给变量obj
,则可以使用obj.getClass()
引用该类。该示例使用对象
,但可以使用任何非最终
类和任何接口
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”类型的对象的引用(至少与反射一起使用),则不能这样做。什么是匿名类的引用?(您的意思是引用表示匿名类的
类
对象?)可由使用。此
请仔细阅读,OP不希望引用外部类,而希望引用外部类。匿名类接口不是内联实现的吗?Like Interface i=new Interface(){//class impl在这里};因此,当您创建它们时,您已经有了一个引用。我打赌这是一些对话的一部分。断章取义他很不清楚他想从你那里得到什么。什么是匿名的?我在JDK javadocAnonymous中看不到它是任何接口。。。这里只有一个名字。。。可以是可运行的、集合的、列表的或您喜欢的。我将答案编辑为更多precise@DavideLorenzoMARINO请向我解释“如果不能引用‘匿名’类型的对象(至少与反射一起使用),您就不能这样做”,因此我可以接受您的建议answer@sharonbn请检查java文档