从Java 8到Java 7语法的Delambdafy Java代码工具?

sha*_*ams 5 java lambda inner-classes java-7 java-8

有没有人知道将Java 8代码(源代码级)转换为使用匿名内部类的Java 7代码中的lambda和方法引用的任何工具?我知道Retrolambda,但它适用于字节码级别,而不是源级别.

现在,我有一个工作版本作为IntelliJ插件.我扩展了当前的IntelliJ代码,一次转换包中的所有lambda,而不是单独选择每个lambda并转换为匿名内部类.这种方法的问题在于它无法作为一个独立的工具工作,比如一个maven插件,因为它需要一个IntelliJ上下文才能工作.

编辑:请注意,重点是将lamda /方法引用转换为匿名内部类.我并不担心Java 8中的API更改会被Java 7编译器捕获并报告为编译错误.

小智 1

在 IntelliJ Idea 中打开“项目结构”,然后将项目语言级别设置为 7.0。如果需要,请再次分析您的代码。这在大多数情况下都会有所帮助,但更喜欢逐类(逐个文件)地进行。

  • 该问题需要一个工具,而不是对整个代码库进行手动审查。 (2认同)