如何表达Java Double Array类型(修复反汇编代码)

时间:2012-11-17 18:55:10

标签: java arrays bytecode disassembly bytecode-manipulation

我有一些代码依赖于使用Java 1.7编译的jar。我目前正在开发OSX,我只能访问Java 1.6。我目前正试图在本地重新编译这些罐子。但是,jar只包含.class文件。我下载了一个反汇编程序并保存了生成的.java文件。现在,我正在尝试调试一些错误。其中一个文件检查某个参数是否等于类或类型。我遇到的问题是有表达式

if (paramType.equals([D.class)) { ... }

导致编译器错误。表达双数组类的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

假设它是(原始)double

的数组
if (paramType.equls(double[].class)) { ... }

或者如果它是(wrapper type) java.lang.Double的数组:

if (paramType.equls(Double[].class)) { ... }

答案 1 :(得分:0)

如果类没有链接到Java 1.7中引入的任何新库类,那么它们应该在Java 1.6中正常工作,因为1.7中引入的唯一字节码功能实际上并未在Java中使用。

您所要做的就是将每个文件的第8个字节从51更改为50.您甚至不需要反汇编和重新组装它们。