2015-08-20 1 views
7

В какой степени я могу использовать java 8 в смешанном проекте java/scala 2.10 sbt?
Могу ли я испустить java 8 байт-код? Использовать функции языка java 8? Или есть функции в scala 2.11, которые необходимы? Есть ли общая история?Могу ли я использовать java 8 в смешанном проекте scala 2.10/java, построенном sbt?

+0

http://scala-lang.org/news/2.11.1: поиск Java 8 –

+0

Я знаю, что у scala 2.11 есть экспериментальная поддержка java 8, но я спрашиваю о scala 2.10 (из-за проекта который не может быть обновлен до scala 2.11). –

+1

Итак, если вы знаете, что у 2.11 есть экспериментальная поддержка, просто стоит признать, что 2.10 будет иметь даже меньшую или даже нулевую поддержку. –

ответ

8

От 2.10.4Scala release notes:

Новый ByteCode эмиттера на основе ASM

Может целевой JDK 1.5, 1,6 и 1,7

Издает 1.6 байткод по умолчанию

Старый 1,5 Бэкэнд устаревшие

Также

Официальный дистрибутив Scala 2.12 будет построен для Java 8 (и, следовательно, требует его).

Более справочная информация о том, когда вы можете ожидать, чтобы в полной мере использовать Java 8:

Скал 2.11.x серия цель Java 6, с (эволюционирует) экспериментальную поддержку> для Java 8. В 2.11. 1, поддержка Java 8 в основном ограничена чтением> байт-кода Java 8 и разбора источника Java 8. Оставайтесь с нами для более полной> (экспериментальной) поддержки Java 8. Следующий основной релиз, 2.12, скорее всего, будет нацелен на Java 8 по умолчанию.

И ...

Планируемое будущее Java 8-ориентированные дополнения к Scala 2.12 включают Java 8> затворов стиля, что позволит компилятор Scala испускать закрывающие> классы (лямбды) так же, как вам может с Java 8. Также запланирован синтаксис лямбда> для типов SAM. Опять же, в моделях Java 8 это позволяет вам создавать экземпляры> любого типа с помощью одного абстрактного метода, передавая лямбду, улучшая> пользовательский интерфейс для библиотек, написанных для Java 8 в Scala.