java如何获得封闭类?
我知道Class.getDeclaredClasses()
可以获得它声明的所有类,但不包括匿名类
我想知道有没有办法通过封闭类获得所有封闭类?例如,我想获取Root
中定义的所有封闭类,以用于测试
class Root{
void run(){
Runnable task = new Runnable(){
public void run(){}
};
task.getClass().getEnclosingClass();// return Root.class
// but I want to get all enclosed class via Root.class, for example:
// Root.class... == task.getClass()
}
}
预期结果是:[class of task]
# 1 楼答案
如果知道匿名类的命名方案,可以尝试使用
Root
的ClassLoader
加载它:javac的命名方案是
<enclosing_class_name>$<anonymous_class_number>
: