java匿名内部类相关问题

这里为什么输出的不是T2,我已经把t2的编译类型用T2接收了,那为什么输出的还是匿名内部类的编译类型呢?

img

用 System.out.println(t2.getClass().getSimpleName());
它是一个内部类,会有父类限定名,用 getSimpleName() 就是自己的名称。

  1. 你这就是内部类,不叫匿名内部类
  2. 你这个内部类就是T1内部的T2,所以他就是会这么显示

T2就是T1类里面的内部类,输出的结果就会像这样了

img