编译器如何理解 java 8 编译 jar 到 Java 6 编译 java 类文件



我有一个用java 8编译的jar文件,我正在java 6环境中编写java代码,它应该使用java 8编译的jar。

这怎么可能 - 编译器如何理解java 8的新功能(接口中的方法定义,lambda表达式等(?

简单的答案:你不能那样做。

Java8 包含 Java6 编译器不知道的语法。

有一些像Retro lambda这样的项目旨在允许您在较旧的JVM上使用Java8功能。但是你不能改变java6编译器来神奇地知道如何处理java8源代码。

当使用复古 lambda 时,关键是:总有一定的可能性某些特定的东西不会像您期望的那样工作。除此之外:在考虑使用 Java8 日期时间 API 时,您将不得不寻找另一个替代品。

换句话说:让"Java8"在Java6环境中工作总是一场艰苦的战斗。它可能会导致很多工作和很多痛苦。意思是:在走这条路之前 - 而是花一些时间评估从长远来看,将你的环境移动到使用 Java8 是否更便宜。无论如何,你都必须在某个时候。

最新更新