1

我需要将Java 1.5项目重写为Java 1.4(有些工具不能吞下1.5,所以需要重写)。

我应该如何更改这些片段,以在 1.4 下编译它们?有没有工具呢?

private FooList<Bar> list = new FooList<Bar>(...);

public List<Bar> function(Baz baz) {...}

public Iterator<Bar> iterator() {...}

编辑:我需要重写源代码,.jar 与我的项目无关。我提到编译是为了表示重写必须是正确的并且编译器可以接受。

4

5 回答 5

3

我会使用一个工具将 Java 5.0 类转换为 Java 1.4 http://retroweaver.sourceforge.net/

但是要回答您的问题,您可以尝试

https://stackoverflow.com/questions/603828/java-5-to-java-1-4-source-code-backporting-tool

https://stackoverflow.com/questions/547872/converting-java-1-5-source-into-1-1-source

另一种选择是升级您的系统。Java 6 即将 EOL,而 Java 1.4 已经有十年历史了。

于 2012-04-29T16:28:26.403 回答
1

使用工具到转换器工具,如Declawer,但基本上它所做的是通过 Java 1.5 源代码的目录运行并输出 Java 1.4 等效源代码。它不支持所有 1.5 功能。

于 2012-04-29T16:34:32.720 回答
0

Java 1.4 不支持泛型,所以它会像这样结束

public List function(Baz baz) {...}

当然,当你从列表中获取一个对象时,你会得到一个对象,所以

Bar bar = function(null).get(0)

将不起作用(您需要显式转换才能将 Object 分配给 Bar)。

于 2012-04-29T16:30:35.453 回答
0

去掉声明中的类型。对于返回这些类型的对象的任何方法,将强制转换添加到您剥离的类型。

于 2012-04-29T16:31:11.537 回答
0

如果您“只是”需要 1.4 二进制文件,您可以使用 RetroWeaver - http://retroweaver.sourceforge.net/ - 来转换 jar。我在一些针对 Java 1.4 的项目中使用过它,并且发现它运行良好。

于 2012-04-29T16:32:57.387 回答