2017-02-04 14 views
3

Возможно ли использовать реализацию метода по умолчанию из интерфейса, содержащегося в библиотеке, скомпилированной с JDK8 +, кодом, который будет скомпилирован с версиями JDK 5-7?Использование метода интерфейса по умолчанию из SPI в версиях до Java 8

Если да, то каковы нюансы, о которых я должен знать при реализации такого интерфейса?

ответ

2

Compatibility Guide для JDK-8 государств этого:

Java SE 8 является бинарная совместимость с Java SE 7 для несовместимостей, перечисленных ниже, за исключением. За исключением отмеченных несовместимостей, файлы классов, созданные с помощью компилятора Java SE 7, будут корректно работать в Java SE 8. Файлы классов, созданные с помощью компилятора Java SE 8, не будут работать на более ранних версиях Java SE.

Формат файла класса Java обновлен для выпуска Java SE 8.

Версия файла класса для Java SE 8 составляет 52.0 согласно спецификации JVM. Файлы классов версии 52.0, созданные компилятором Java SE 8, не могут использоваться в более ранних версиях Java SE.

Так что ответ не, так как вы не должны быть в состоянии запустить/компилировать Java SE 7 код, который использует Java SE 8 скомпилированные классы/банки в первую очередь.