[英]From Object array to Object cannot be cast to java.lang.Object
[英]Instrumenting Array via java.lang.Object
我目前正在开发一个平台,它通过ASM库大量使用动态字节码修改例程。 除了数组类之外,我已经能够成功地检测所有必需的系统类。 (即String [],int []等)这是因为数组类本身是一个动态类型,因此据我所知,rt.jar中实际上没有类文件。
但是,我确实发现即使是数组类型也扩展了java.lang.Object,所以虽然修改Object类会不太理想,但不仅仅是因为它会导致任何更改传播到所有子类,它可能会允许我间接地为数组类添加了一个额外的原始字段,顺便说一句,这是我想要实现的。
除了我提到的显而易见的警告,这会引起任何其他与平台相关的问题吗?
而不是检测Object,最简单的方法是用您选择的编译版本替换它。 假设这有效,您可以对其进行检测以使其更加便携。
注意:我发现JVM不喜欢Object有其他方法(如果你添加多个,你会得到奇怪的错误)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.