java - 通过 java.lang.Object 检测数组

标签 java instrumentation

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

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

除了我提到的明显注意事项之外,这是否会导致任何其他与平台相关的问题?

最佳答案

除了检测 Object,最简单的做法是将其替换为您选择的编译版本。假设这可行,您可以对其进行检测以使其更便携。

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

关于java - 通过 java.lang.Object 检测数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14693432/

相关文章:

java - 重载 onResume()

java - 使用UsageEvents、UsageEvents.Event 和 MOVE_TO_FOREGROUND 计算每个应用一天内的使用次数

java - 当另一个第一个方法返回 true 时如何调用第二个方法?

java - 尝试在 JLayeredPane 中重叠两个相同大小的 JPanel

java - 拦截构造函数导致 ClassNotFoundException

java - 如何创建一个大的选择屏幕?

java - 如何向 intelliJ 自动完成添加新的检测方法?

java - 拦截来自特定命名空间的所有方法/构造函数/getters/setters

debugging - 记录二进制文件的行为?

java - VM 启动后启动 Instrumentation Agent