我目前在一个平台上工作,该平台通过 ASM 库大量使用动态字节码修改例程。除了数组类之外,我已经能够成功检测所有必需的系统类。 (即 String[]、int[] 等)这是因为数组类本身是动态类型,因此据我所知,rt.jar 中实际上没有类文件可供检测。
但是,我确实想到,即使数组类型也扩展了 java.lang.Object,所以尽管修改 Object 类并不理想,尤其是因为它会导致任何更改传播到所有子类,但它可能允许我间接地向数组类添加一个额外的原始字段,顺便说一下,这就是我想要实现的。
除了我提到的明显注意事项之外,这是否会导致任何其他与平台相关的问题?
最佳答案
除了检测 Object,最简单的做法是将其替换为您选择的编译版本。假设这可行,您可以对其进行检测以使其更便携。
注意:我发现 JVM 不喜欢 Object 有额外的方法(如果你添加多个方法,你会得到奇怪的错误)
关于java - 通过 java.lang.Object 检测数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14693432/