2012-04-29 3 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() {...} 

EDIT: мне нужно переписать источники, .jars не имеют значения для моего проекта. Я упомянул компиляцию, чтобы выразить, что переписывание должно быть правильным и приемлемым компилятором.

+0

Скомпилировать с использованием 1,5/1,6 таргетинга 'jsr14' - http://alblue.bandlem.com/2010/10/compiling-java-generics-with-14.html, если единственной проблемой является использование Generics –

+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) 

бы не работает (вам нужно явное литье, чтобы назначить Object to Bar).

0

Изгоните типы в декларациях. Для любого метода, который возвращает объект этих типов, добавьте приведение к типу, который вы удалили.

0

Если вы «просто» должны иметь 1.4 двоичные файлы, вы можете использовать RetroWeaver - http://retroweaver.sourceforge.net/ - для преобразования фляг. Я использовал его в нескольких проектах, нацеленных на Java 1.4, и нашел, что он работает хорошо.

Смежные вопросы