【问题标题】:Rewriting Java 1.5 to 1.4将 Java 1.5 重写为 1.4
【发布时间】:2012-04-29 16:26:27
【问题描述】:

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

我应该如何更改这些 sn-ps,以便在 1.4 下编译它们?有这样的工具吗?

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

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

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

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

【问题讨论】:

标签: java types parameterized


【解决方案1】:

我会使用将 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 已经有十年历史了。

【讨论】:

  • @Jeffrey 这是一个有效的评论恕我直言。我在问题关闭之前做了旧的添加答案,但我应该停止这样做。 ;)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-10-31
          • 2011-08-18
          • 1970-01-01
          • 1970-01-01
          • 2012-06-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多