Java 类名+;$。是什么原因造成的?

Java 类名+;$。是什么原因造成的?,java,inheritance,Java,Inheritance,我有一个类别a。我有一个类别a的参考ref,指向类型为x的对象。 什么样的对象使ref.getClass()打印A$1?美元意味着什么?美元意味着一个内部类。在这种情况下: public class A { public A() { Runnable r1 = new Runnable() { public void run() { ... } }; } private static class Inner { ... } } 构造函数内部

我有一个类别a。我有一个类别a的参考ref,指向类型为x的对象。
什么样的对象使ref.getClass()打印A$1?美元意味着什么?

美元意味着一个内部类。在这种情况下:

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

  private static class Inner {
    ...
  }
}
构造函数内部的Runnable将生成一个类文件$1.class,内部类将创建一个名为$Inner.class的文件


匿名内部类在遇到时从1开始按顺序编号(尽管我不确定是否保证这种行为)。命名的内部类将其名称附加在$之后。

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

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

  private static class Inner {
    ...
  }
}
构造函数内部的Runnable将生成一个类文件$1.class,内部类将创建一个名为$Inner.class的文件

匿名内部类在遇到时从1开始按顺序编号(尽管我不确定是否保证这种行为)。命名的内部类将其名称附加在$之后