我目前正在开发一个平台,它通过ASM库大量使用动态字节码修改例程。除了数组类之外,我已经能够成功地检测所有必需的系统类。 (即String [],int []等)这是因为数组类本身是一个动态类型,因此据我所知,rt.jar中实际上没有类文件。
然而,我确实发现即使是数组类型也扩展了java.lang.Object,所以尽管修改Object类会不太理想,不仅仅是因为它会导致任何更改传播到所有子类,可能会允许我间接地向数组类添加一个额外的原始字段,顺便说一句,这是我想要实现的。
除了我提到的显而易见的警告,这会引起任何其他与平台相关的问题吗?
答案 0 :(得分:4)
最简单的方法是将其替换为您选择的编译版本,而不是检测Object。假设这种方法有效,您可以对其进行检测以使其更加便携。
注意:我发现JVM不喜欢Object以获得其他方法(如果添加多个方法,则会出现奇怪的错误)
答案 1 :(得分:3)