java - 在 Intellij IDEA 中将 Java 8 流降级为 Java 7 循环
问题描述
我有一些使用 Java 8 特性编写的代码,这意味着流和 lambdas。现在,我必须在使用 Java 7 的项目中重用此类代码。是否有可能使用 IntelliJ 自动重构代码?
例如,我必须将一些如下所示的代码重构为一个简单的for
/while
循环。
Arrays.stream(values)
.distinct()
.limit(2)
.count();
解决方案
是的,IntelliJ 有“用循环替换 Stream API 链”重构选项。Alt+Enter
将光标放在方法上后按下后弹出Arrays.stream()
:
它将产生如下代码:
long count = 0L;
long limit = 2;
Set<Integer> uniqueValues = new HashSet<>();
for (int i : new int[]{1, 2, 3}) {
if (uniqueValues.add(i)) {
if (limit-- == 0) break;
count++;
}
}
System.out.println(count);
要使该选项起作用,项目语言级别必须为 8 或更高。
推荐阅读
- batch-file - 在 if 语句中批量设置变量
- c# - 如何访问对象变量的二维数组?
- c# - 获取安卓设备截图
- javascript - 如何悬停路径类与数组值匹配的总数?
- google-apps-script - 从另一个站点上的链接下载文件?
- javascript - 使用 PHP 和 javascript 下拉菜单查询 MySQL
- c# - C# 序列化/反序列化到/从具有命名空间的 WebService(BizTalk 发布架构)
- eslint - 如何验证 .eslintrc.json 文件?
- java - Java登录验证不起作用?
- python - ValueError:只能比较标记相同的系列对象python