我有一些代码依赖于使用Java 1.7编译的jar。我目前正在开发OSX,我只能访问Java 1.6。我目前正试图在本地重新编译这些罐子。但是,jar只包含.class文件。我下载了一个反汇编程序并保存了生成的.java文件。现在,我正在尝试调试一些错误。其中一个文件检查某个参数是否等于类或类型。我遇到的问题是有表达式
if (paramType.equals([D.class)) { ... }
导致编译器错误。表达双数组类的正确方法是什么?
答案 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.您甚至不需要反汇编和重新组装它们。