为了账号安全,请及时绑定邮箱和手机立即绑定

JVM在哪里存储在运行时实现的抽象类的信息?

JVM在哪里存储在运行时实现的抽象类的信息?

慕雪6442864 2021-04-01 14:10:09
我正在使用Java中的ASM库从已编译的.class文件中提取类的信息。现在,我无法获取在运行时实现的抽象类的信息。JVM在哪里存储在运行时实例化的抽象类的信息?像下面的例子。public MockAbstractClass testForAbstract(){    return new MockAbstractClass() {        @Override        void abstractMethod() {            mockMethod();        }    }; }static abstract class MockAbstractClass{    abstract void abstractMethod();   }这里的MockAbstractClass对象是在运行时通过testForAbstract()方法创建的,该类也是在运行时实现的。
查看完整描述

1 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

Lambda是一个在运行时生成类的示例。

访问动态生成的类的唯一方法是通过Instrumentation存储它们。对于以任何方式定义的每个类,都有一个组件被调用。然后,您需要存储对这些类的字节码的引用。您可以对此进行优化,以不将类存储在可以从类加载器中检索字节代码的位置。

注意:对于lambda,您不会获得类名或类加载器,但可以读取字节码来获取类名。


查看完整回答
反对 回复 2021-04-14
  • 1 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信