Существует ли отрывок программы Java, который может скомпилировать с компилятором Java 5 на JRE 6, но не компилятором Java 6?

Vimperator заставляет Firefox действовать очень как VIM:

Vimperator является свободным дополнением браузера для Firefox, который заставляет его посмотреть и вести себя как текстовый редактор Vim. Это имеет подобные привязки клавиш, и Вы могли назвать его модальным веб-браузером, поскольку привязки клавиш отличаются, согласно которому режиму Вы находитесь в.

, Как только у Вас есть курсор в текстовом поле, поразите Ctrl - я для открытия в редакторе, который значения по умолчанию к gvim.

11
задан Thorbjørn Ravn Andersen 22 June 2011 в 15:21
поделиться

3 ответа

В языке Java ничего нет ], который был удален между JDK5 и 6. Единственное, что было добавлено, как уже было сказано, это аннотация @Override , разрешенная для методов интерфейса - без ключевых слов. Следовательно, я боюсь, что вы останетесь с различиями в библиотеках как единственной причиной критических изменений.

Они действительно существуют, даже в основном API; в необычном приступе разгула, нарушающего обратную совместимость, они изменили сигнатуры некоторых методов интерфейса ExecutorService . Это произошло потому, что общие сигнатуры методов были чрезмерно ограничительными. Это было чистое изменение библиотеки (хотя, будучи частью java.util , красивой базовой библиотеки ); ничего общего с модификациями на уровне языка.

Например, от JDK5 :

<T> T invokeAny(Collection<Callable<T>> tasks)

до JDK6 :

<T> T invokeAny(Collection<? extends Callable<T>> tasks)

Это означает, что любая программа, содержащая код , реализующий этот интерфейс в JDK5 не скомпилировался бы с JDK6. Создать сниппет легко; просто позвольте вашей IDE создать пустую реализацию интерфейса JDK5, а затем выполнить компоновку с JDK6.

Примечание:

14
ответ дан 3 December 2019 в 07:38
поделиться

Поскольку JVMDI был удален, а JVMPI отключен в Java SE 6 (согласно примечания к выпуску J2SE 6.0 ), вы можете добавить код, используя этот API: он не будет компилироваться с J2SE 6.0, только с 5.0. (как показано на этой ветке )

2
ответ дан 3 December 2019 в 07:38
поделиться

Не ответ на ваш вопрос, а альтернатива вашему подходу: нельзя ли использовать второй компоновщик на основе ant или maven, который вы используете по запросу для создания окончательного приложения или библиотеки? Эта сборка будет использовать реальный внешний Java 5 SDK и, таким образом, гарантировать, что приложение / библиотека работает в среде Java5.

0
ответ дан 3 December 2019 в 07:38
поделиться
Другие вопросы по тегам:

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