我有一个内部类B并创建它的匿名实例。我怎么能要求B类? getClass (), getEnclosingClass ()
...
public class A {
public static class B {
}
public static void main(String[] args) {
Class clazz = new B() {}.getClass();
System.out.println("" + (clazz == B.class));
}
}
答案 0 :(得分:2)
你可以打电话
Class clazz = new B() {}.getClass().getGenericSuperclass();
Javadoc陈述
返回表示实体的直接超类的Type (类,接口,基本类型或void)由此类表示。
当你创建一个匿名内部类时,你正在扩展类本身,因此它的类与父类不同,它是一个子类。