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

标签 java lambda java-7 java-8 inner-classes

<分区>

有谁知道有什么工具可以将使用 lambda 和方法引用的 Java 8 代码(在源代码级别)转换为使用匿名内部类的 Java 7 代码? 我知道 Retrolambda ,但这适用于字节码级别,而不是源代码级别。

目前,我有一个可以作为 IntelliJ 插件使用的版本。 我扩展了当前的 IntelliJ 代码以一次性转换一个包中的所有 lambda,而不是 selecting each lambda individually and converting to anonymous inner class . 但是这种方法的问题是它不能作为一个独立的工具工作,比如 maven 插件,因为它需要 IntelliJ 上下文才能工作。

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

最佳答案

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

关于java - Delambdafy Java 代码从 Java 8 到 Java 7 语法的工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24943726/

相关文章:

java - 为什么 Android 的 Java 源代码实现与相同类的常规 Java 实现不同?

java - 使用 SuperCSV ICsvBeanReader 解析枚举

c# - 从列表中选择 Lambda 或 linq

java - 如果存在,则将 Optional 的值分配给变量

java - 我们如何使用Java获得IBM JRE的SR和FP?

java - 如何让 IntelliJ 使用 Java7 作为 Google App Engine 开发服务器?

java - StreamTokenizer 中可能为 'look ahead' 吗?

java - Android adb 无法连接到 ip 地址

java - 任何类似过滤器的 lambda 操作不会丢弃吗?

java - 将 Optional<Integer> 转换为 Optional<Long> 的好方法