我怎么能要求类内部类?

时间:2013-10-10 14:15:27

标签: java

我有一个内部类B并创建它的匿名实例。我怎么能要求B类? getClass (), getEnclosingClass () ...

的系统输出为false
public class A {
    public static class B {
    }
    public static void main(String[] args) {
        Class clazz = new B() {}.getClass();
        System.out.println("" + (clazz == B.class));
    }
}

1 个答案:

答案 0 :(得分:2)

你可以打电话

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

Javadoc陈述

  

返回表示实体的直接超类的Type   (类,接口,基本类型或void)由此类表示。

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