Компиляция кода Java, написанного, чтобы 1.5 работал с 1.4 JRE?

from itertools import islice

def split_every(n, iterable):
    i = iter(iterable)
    piece = list(islice(i, n))
    while piece:
        yield piece
        piece = list(islice(i, n))

Некоторые тесты:

>>> list(split_every(5, range(9)))
[[0, 1, 2, 3, 4], [5, 6, 7, 8]]

>>> list(split_every(3, (x**2 for x in range(20))))
[[0, 1, 4], [9, 16, 25], [36, 49, 64], [81, 100, 121], [144, 169, 196], [225, 256, 289], [324, 361]]

>>> [''.join(s) for s in split_every(6, 'Hello world')]
['Hello ', 'world']

>>> list(split_every(100, []))
[]
7
задан Adrian Hope-Bailie 10 June 2009 в 10:46
поделиться

4 ответа

Я не использовал ни одно из этих решений, но есть

  1. Retroweaver
  2. , указывающий, что неподдерживаемый -target jsr14 может работать
  3. Retrotranslator
  4. Declawer
  5. JBossRetro

Вы также можете найти javac -XD-printflat полезным (но будьте осторожны, чтобы не перезаписать исходный код).

7
ответ дан 6 December 2019 в 15:29
поделиться

Универсальные шаблоны реализуются путем стирания типов, поэтому они должны работать до того, как будут введены универсальные шаблоны. Однако вы не сможете скомпилировать код с помощью более старой версии компилятора (я не знаю, зачем вам это нужно)

0
ответ дан 6 December 2019 в 15:29
поделиться

У меня есть проект, в котором используются дженерики и несколько кусочков Java 1.5 / 6. Можно ли скомпилировать этот код в работать в системе под управлением JRE 1.4?

Нет.

Придется ли мне проходить через все мой код и измените 1.5 на заставить это работать?

Да. Но есть способ автоматизировать это, используя инструмент под названием Retroweaver . Однако нет гарантии, что он все поймает.

6
ответ дан 6 December 2019 в 15:29
поделиться

У меня был хороший опыт работы с Retrotranslator (Retroweaver не работал с тем, что мне было нужно, не могу точно вспомнить, что).

Он очень хорошо работал для моей цели (создание JDK1.4 версии Logback).

http://retrotranslator.sourceforge.net/

1
ответ дан 6 December 2019 в 15:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: