有没有办法使用反射访问Java中匿名类的编译器编号?

Nel*_*ess 1 java reflection

假设我有一个Class对象,它代表一个匿名的内部类.有什么办法可以为它创建的类获取编译器的编号吗?例如,我在这里有一个类,其编译导致了一个

Thing$1.class
Run Code Online (Sandbox Code Playgroud)

正在创建的文件.如何从Class对象中找出这个数字?

Mic*_*rdt 5

这有效:

    Object o =new Object(){};
    String name = o.getClass().getName();
    int number = Integer.parseInt(name.substring(name.lastIndexOf('$')+1));
Run Code Online (Sandbox Code Playgroud)

但是我无法想象你能用这个数字做些什么.更重要的是,这种匿名类的命名方案是AFAIK,不受语言或VM规范的约束.这是一个可能会改变的实现细节.