Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取对匿名内部类的类对象的引用_Java_Anonymous Class - Fatal编程技术网

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

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


对于非匿名类,它是通过
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文档