我可以在混合java / scala 2.10 sbt项目中使用java 8到什么程度? 我可以发出java 8字节码吗?使用java 8语言功能?或者scala 2.11中是否有必要的功能?是否存在互操作故事?
答案 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编写的库的用户体验。