2012-04-29 61 views
1

我需要重寫Java 1.5項目到Java 1.4(有一些工具不能吞下1.5,所以需要重寫)。重寫Java 1.5到1.4

我應該如何更改這些片段,在1.4下編譯它們?有沒有一個工具呢?

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

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

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

編輯: 我需要重寫源,.jar文件都無關緊要爲我的項目。我提到編譯來表示重寫必須是正確的,並且可以被編譯器接受。

+0

編譯1.5/1.6目標'jsr14' - http://alblue.bandlem.com/2010/10/compiling-java-generics-with-14.html如果唯一的問題是使用泛型 –

+0

*「 (有一些工具不能吞嚥1.5,所以需要重寫)「*真的嗎?最新的?在2012年?近八年後? –

+0

@ T.J.Crowder:是的,JML的東西。 – pbp

回答

1

使用工具來轉換工具,如Declawer,但基本上它是通過Java 1.5源目錄運行並輸出Java 1.4等效源。它不支持所有1.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已經有十年的歷史了。

+3

你有沒有想過? – Jeffrey

+1

@Jeffrey它是一個有效的評論恕我直言。我在問題關閉之前做了一個答案,但我應該停止這樣做。 ;) –

0

Java 1.4中不支持泛型,因此它最終將像

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

當然,當你從列表中選擇一個對象,你會得到一個對象,所以

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

會不工作(你需要一個明確的轉換來分配一個對象到欄)。

0

刪除聲明中的類型。對於任何返回這些類型的對象的方法,請將一個強制類型添加到您刪除的類型中。

0

如果你「只」需要1.4個二進制文件,你可以使用RetroWeaver - http://retroweaver.sourceforge.net/ - 來轉換罐子。我已經在一些針對Java 1.4的項目中使用過它,並發現它運行良好。

相關問題