Classname + $。是什么导致的?

时间:2009-09-30 04:49:05

标签: java inheritance

我有一个A类。我有一个A类的参考 ref ,指向 x 类型的对象。 什么样的对象使 ref.getClass()打印 A $ 1 ? $表示什么?

1 个答案:

答案 0 :(得分:13)

$表示内部类。在这种情况下:

public class A {
  public A() {
    Runnable r1 = new Runnable() {
      public void run() { ... }
    };
  }

  private static class Inner {
    ...
  }
}

构造函数中的Runnable将生成一个类文件A $ 1.class,而Inner类将创建一个名为A $ Inner.class的文件。

匿名内部类在遇到它们时从1顺序编号(虽然我不确定这种行为是否得到保证)。命名的内部类在$。

之后附加其名称