Java 8引入了重要的新语言功能,例如lambda表达式。
语言的这些变化是否伴随着已编译字节码的重大变化,从而阻止了它在Java 7虚拟机上运行而无需使用某些逆向转换程序?
不可以,在源代码中使用1.8功能要求你以1.8 VM为目标。我刚刚尝试了新的Java 8版本,并尝试使用进行编译-target 1.7 -source 1.8,但编译器拒绝了:
-target 1.7 -source 1.8
$ javac Test -source 1.8 -target 1.7 javac: source release 1.8 requires target release 1.8