我可以在sbt构建的混合scala 2.10 / java项目中使用java 8吗?

时间:2015-08-20 19:28:59

标签: java scala sbt java-8 scala-java-interop

我可以在混合java / scala 2.10 sbt项目中使用java 8到什么程度? 我可以发出java 8字节码吗?使用java 8语言功能?或者scala 2.11中是否有必要的功能?是否存在互操作故事?

1 个答案:

答案 0 :(得分:8)

来自2.10.4 Scala release notes

  

基于ASM的新ByteCode发射器

     

可以定位JDK 1.5,1.6和1.7

     

默认发出1.6字节码

     

旧的1.5后端已被弃用

另外

  

官方的Scala 2.12发行版将为Java 8构建(因此需要它)。

有关何时可以完全使用Java 8的更多背景信息:

  

Scala 2.11.x系列针对Java 6,具有(不断发展的)Java 8实验性支持。在2.11.1中,Java 8支持主要限于阅读> Java 8字节码和解析Java 8源代码。请继续关注更完整的>(实验性)Java 8支持。下一个主要版本2.12,大多数情况下可能会默认为Java 8。

和...

  

为Scala 2.12计划的未来以Java 8为中心的新增内容包括Java 8>样式的闭包,它将允许Scala编译器像Java 8一样发出闭包>类(lambdas)。还有计划的lambda> SAM类型的语法。同样,在Java 8方式中,这允许您通过传递lambda来实例化>任何类型的单一抽象方法,从而改进>用于Scala中为Java 8编写的库的用户体验。