是否可以使用字节码操作继承最终类?
问问题
565 次
2 回答
4
是和不是。
您可以使用字节码操作将final
类更改为非final
动态。这甚至不会破坏二进制兼容性,因此不存在类加载器/验证器错误的风险。
但是,您必须将字节码修改应用于final
类本身。您不能对子类进行字节码操作以使其从final
父类继承。或者更准确地说,如果你这样做,修改后的子类将在与final
父类一起加载时被验证器拒绝。
于 2013-02-25T13:19:15.083 回答
0
这描述了类文件格式。在偏移处10+cpsize
有 2 个字节定义此类的访问标志。这些标志之一称为ACC_FINAL (0x0010)。我想您可以掩盖这一点并使该课程成为非最终课程。
于 2013-02-25T12:57:00.840 回答