2014-01-28 3 views
5

Я использую 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 Совместимость Выпуск

+4

Java 8 официально не выпущен, поэтому вы можете утверждать, что пока никто не может знать 100%. – david99world

+0

Нет. Если вы используете специфические функции JDK1.8, которые не будут работать на 1,7 JRE/JDK. Если вы не используете какие-либо конкретные функции Java8 и не компилируете их до 1.7, он все равно будет работать. –

+0

AFAIK Java имеет тенденцию сохранять скрупулезную ретро-совместимость, так что да. Тебе все должно быть хорошо. – Averroes

ответ

8

Существующий фрагмент кода (в силу самого факта) не использовать какие-либо новые возможности Java 8. Если у вас есть кусок кода, который работает на Java версии об, он также будет работать на все другие версии v '> v. Это давнее обещание платформы Java.


Под "работает" я имею в виду "работает, как указано, с использованием не осуждается официальной JDK API-интерфейсов".

+0

Пока ваш код зависит только от общедоступных API и спецификации платформы Java, например. игра с Unsafe или использование деталей реализации, таких как интернирование строк, не покрывается этим обещанием. – Pyranja

+0

Не все это программное обеспечение. Наглядным примером является GATK, который представляет собой набор инструментов анализа генома, разработанный Broad Institute. Он совместим только с java 1.7 и будет генерировать исключения, если версия Java - 1,8. – carbocation

+1

@ carbocation Причиной может быть то, что он использует устаревшие и/или проприетарные API, которые не являются частью публичного API JavaSE. –

-3

Это зависит.

Ваш вопрос немного неясен. «Будет ли он работать по-прежнему» и «Все новые функции Java 8 могут использоваться в существующей части кода» кажутся взаимоисключающими.

Если вы используете выражение Lambda Expression (Java 8), вы не сможете скомпилировать его с помощью JDK7. И наоборот, если вы компилируете JDK7, вы не сможете использовать какие-либо новые функции в JDK8.

TL; DR: Если вам нужно спросить, это, вероятно, не будет.

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