Я использую Java 1.7
в моем коде, теперь я хочу, чтобы заменить JAVA 1.7
на JAVA 1.8
.is Java 1.8
совместим с Java 1.7
. ? Будет ли это работать до. Я имею в виду, что все новые функции Java 1.8 могут использоваться в существующей части кода?Java 1,8 по сравнению с Java 1.7 Совместимость Выпуск
ответ
Существующий фрагмент кода (в силу самого факта) не использовать какие-либо новые возможности Java 8. Если у вас есть кусок кода, который работает на Java версии об, он также будет работать на все другие версии v '> v. Это давнее обещание платформы Java.
Под "работает" я имею в виду "работает, как указано, с использованием не осуждается официальной JDK API-интерфейсов".
Пока ваш код зависит только от общедоступных API и спецификации платформы Java, например. игра с Unsafe или использование деталей реализации, таких как интернирование строк, не покрывается этим обещанием. – Pyranja
Не все это программное обеспечение. Наглядным примером является GATK, который представляет собой набор инструментов анализа генома, разработанный Broad Institute. Он совместим только с java 1.7 и будет генерировать исключения, если версия Java - 1,8. – carbocation
@ carbocation Причиной может быть то, что он использует устаревшие и/или проприетарные API, которые не являются частью публичного API JavaSE. –
Это зависит.
Ваш вопрос немного неясен. «Будет ли он работать по-прежнему» и «Все новые функции Java 8 могут использоваться в существующей части кода» кажутся взаимоисключающими.
Если вы используете выражение Lambda Expression (Java 8), вы не сможете скомпилировать его с помощью JDK7. И наоборот, если вы компилируете JDK7, вы не сможете использовать какие-либо новые функции в JDK8.
TL; DR: Если вам нужно спросить, это, вероятно, не будет.
- 1. Компилятор Java 1.8 по сравнению с 1.7
- 2. Java 1.7 Совместимость с драйвером JDBC
- 3. недопустимый целевой выпуск 1,8
- 4. Обратная совместимость в Java по сравнению с C++
- 5. выпуск по сравнению струнной
- 6. test-compile дает «недопустимый целевой выпуск: 1,8»
- 7. Browser Alignment Совместимость Выпуск
- 8. Java 1.7 Совместимость для библиотеки в андроиде студии
- 9. Java обратная совместимость описание
- 10. Выпуск сборки по сравнению с производительностью отладки
- 11. Строители в Java по сравнению с C++?
- 12. Groovy по сравнению с Java синтаксиса несовпадения
- 13. Создание объекта Java по сравнению с C#
- 14. Деструкторы в C++ (по сравнению с java)
- 15. По сравнению с текстовыми файлами в java
- 16. Java File.exists() по сравнению с File.isFile()
- 17. Перечисления Java по сравнению с статическими константами
- 18. Java generics по сравнению с шаблонами C++
- 19. Java: многомерный массив по сравнению с одномерной
- 20. Эффективность памяти Java по сравнению с Cython
- 21. Блок синхронизации Java по сравнению с Collections.synchronizedMap
- 22. Объясните петли Ruby по сравнению с Java
- 23. JRuby совместимость 1.7.x с камышевки gemjar
- 24. java.sql.Date в Java 8 по сравнению с Java 6
- 25. Java -cp "Библиотека/*" по сравнению с Java -cp "LIB/*. Банку"
- 26. Java 8 плохой графический интерфейс по сравнению с Java 6
- 27. Разница в JAXB Java 7 по сравнению с Java 8
- 28. Java nio Путь по сравнению с обычным java File API
- 29. Исключение Java Upgrade с 1,6 до 1,8
- 30. Subversion 1.7 vs 1,8 относительные (^) нечетные символы
Java 8 официально не выпущен, поэтому вы можете утверждать, что пока никто не может знать 100%. – david99world
Нет. Если вы используете специфические функции JDK1.8, которые не будут работать на 1,7 JRE/JDK. Если вы не используете какие-либо конкретные функции Java8 и не компилируете их до 1.7, он все равно будет работать. –
AFAIK Java имеет тенденцию сохранять скрупулезную ретро-совместимость, так что да. Тебе все должно быть хорошо. – Averroes