0

我有一个内部类 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));
    }
}
4

1 回答 1

2

你可以打电话

Class clazz = new B() {}.getClass().getGenericSuperclass();

Javadoc 状态

返回表示此 Class 所表示的实体(类、接口、原始类型或 void)的直接超类的 Type。

当您创建一个匿名内部类时,您正在扩展该类本身,因此它的类与父类不同,它是一个子类。

于 2013-10-10T14:17:09.313 回答