2015-08-20 36 views
7

Do jakiego stopnia mogę używać java 8 w projekcie mieszanym java/scala 2.10 sbt?
Czy mogę emitować kod bajtowy Java 8? Używaj funkcji języka Java 8? A może są potrzebne funkcje w scala 2.11? Czy istnieje opowieść dotycząca współpracy?Czy mogę używać java 8 w mieszanym scala 2.10/java projektu zbudowanego przez sbt?

+0

http://scala-lang.org/news/2.11.1: search for Java 8 –

+0

wiem, że scala 2.11 ma eksperymentalną obsługę Java 8, ale pytam o Scala 2.10 (z powodu projektu którego nie można uaktualnić do wersji 2.11). –

+1

Więc jeśli wiesz, że 2.11 ma eksperymentalne wsparcie, to po prostu ma się rozumieć, że 2.10 będzie miało jeszcze mniej, a nawet zero wsparcia. –

Odpowiedz

8

Z 2.10.4Scala release notes:

Nowym Bytecode emiterem na podstawie ASM

można kierować JDK 1.5, 1.6 i 1.7

Emituje 1.6 kodu bajtowego domyślnie

Old 1,5 backend jest przestarzałe

Również

Oficjalna dystrybucja Scala 2.12 zostanie zbudowana dla środowiska Java 8 (i tym samym będzie wymagać tego).

Więcej informacji tła, kiedy można oczekiwać, aby w pełni korzystać z Java 8:

serii Scala 2.11.x skierowany Java 6, z (ewoluuje) eksperymentalne wsparcie dla Java> 8. W 2.11. 1, obsługa Java 8 ogranicza się głównie do czytania kodu bajtowego Java 8 i analizowania źródła Java 8. Bądź na bieżąco, aby uzyskać bardziej kompletną> (eksperymentalną) obsługę Java 8. Następne główne wydanie, 2.12, będzie najczęściej> domyślnie kierować Java 8.

I ...

planowanych przyszłych Java 8-centric dodatki dla Scala 2.12 obejmują Java 8> zamknięć stylu, który pozwoli kompilator Scala emitują zamknięcia> klas (lambda) tak jak ty może z Java 8. Istnieje również planowana składnia lambda> dla typów SAM. Znowu, w modzie Java 8, pozwala to na tworzenie instancji> dowolnego typu za pomocą jednej abstrakcyjnej metody, przekazując lambdę, poprawiając> wrażenia użytkownika dla bibliotek napisanych dla Java 8 w Scali.