通过java.lang.Object检测数组

Gil*_*son 7 java instrumentation

我目前正在开发一个平台,它通过ASM库大量使用动态字节码修改例程.除了数组类之外,我已经能够成功地检测所有必需的系统类.(即String [],int []等)这是因为数组类本身是一个动态类型,因此据我所知,rt.jar中实际上没有类文件.

但是,我确实发现即使是数组类型也扩展了java.lang.Object,所以虽然修改Object类会不太理想,但不仅仅是因为它会导致任何更改传播到所有子类,它可能会允许我间接地为数组类添加了一个额外的原始字段,顺便说一句,这是我想要实现的.

除了我提到的显而易见的警告,这会引起任何其他与平台相关的问题吗?

Pet*_*rey 4

最简单的做法就是用您选择的编译版本替换它,而不是检测对象。假设这可行,您可以对其进行检测以使其更加便携。

注意:我发现 JVM 不喜欢 Object 有额外的方法(如果添加多个方法,则会出现奇怪的错误)