Can I use java 8 in an mixed scala 2.10 / java project built by sbt?

ε祈祈猫儿з 提交于 2019-12-10 03:39:42

问题


To what degree can I use java 8 in a mixed java / scala 2.10 sbt project?
Can I emit java 8 bytecode? Use java 8 language features? Or are there features in scala 2.11 that are necessary? Is there an interop story?


回答1:


From the 2.10.4 Scala release notes:

New ByteCode emitter based on ASM

Can target JDK 1.5, 1.6 and 1.7

Emits 1.6 bytecode by default

Old 1.5 backend is deprecated

Also

The official Scala 2.12 distribution will be built for Java 8 (and thus require it).

More background info of when you can expect to fully use Java 8:

The Scala 2.11.x series targets Java 6, with (evolving) experimental >support for Java 8. In 2.11.1, Java 8 support is mostly limited to reading >Java 8 bytecode and parsing Java 8 source. Stay tuned for more complete >(experimental) Java 8 support. The next major release, 2.12, will most >likely target Java 8 by default.

And...

Planned future Java 8-centric additions for Scala 2.12 include Java 8 >style closures, which will allow the Scala compiler to emit closure >classes (lambdas) just as you can with Java 8. There’s also planned lambda >syntax for SAM types. Again, in Java 8 fashion, this lets you instantiate >any type with one single abstract method by passing a lambda, improving >the user experiences for libraries written for Java 8 in Scala.



来源:https://stackoverflow.com/questions/32126768/can-i-use-java-8-in-an-mixed-scala-2-10-java-project-built-by-sbt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!