JVM将运行时实现的abstract 类的信息存放在哪里?

Where does JVM store information of abstract classes implemented at runtime?

我在 Java 中使用 ASM 库从已编译的 .class 文件中提取 class 的信息。现在我无法获得在运行时实现的抽象 classes 的信息。

JVM把运行时实例化的abstract classes的信息存放在哪里?就像下面的例子。

public MockAbstractClass testForAbstract(){
    return new MockAbstractClass() {
        @Override
        void abstractMethod() {
            mockMethod();
        }
    }; }

static abstract class MockAbstractClass{
    abstract void abstractMethod();   }

这里MockAbstractClass的对象是在运行时在testForAbstract()方法中创建的,同样class是在运行时实现的

Lambda 是在运行时生成 classes 的示例。

访问动态生成的 class 的唯一方法是通过 Instrumentation 存储它们。对于以任何方式定义的每个 class,都会调用一个组件。然后,您需要存储对那些 classes 的字节码的引用。您可以优化它以不存储 classes 可以从 classloader 检索字节码。

注意:对于 lambda,您无法获取 class 名称或 class 加载程序,但您可以阅读字节码以获取 class 名称。