在Intellij IDEA中将Java8流降级为Java7循环
我有一些使用Java8特性编写的代码,这意味着流和lambda。现在,我必须在一个使用Java7的项目中重用这样的代码。是否有可能使用IntelliJ自动重构代码
例如,我必须将一些如下所示的代码重构为一个简单的for
/while
循环
Arrays.stream(values)
.distinct()
.limit(2)
.count();
你可以在下面搜索框中键入要查询的问题!
我有一些使用Java8特性编写的代码,这意味着流和lambda。现在,我必须在一个使用Java7的项目中重用这样的代码。是否有可能使用IntelliJ自动重构代码
例如,我必须将一些如下所示的代码重构为一个简单的for
/while
循环
Arrays.stream(values)
.distinct()
.limit(2)
.count();
# 1 楼答案
是的,IntelliJ有“用循环替换流API链”重构选项。将光标放置在
Arrays.stream()
方法上,按Alt+Enter
后弹出:它将生成如下代码:
对于工作选项,项目语言级别必须为8或更高
# 2 楼答案
不过,对于当前的逻辑,您真的不需要那么多代码(这里的重构似乎不是最优的,至少对我来说可读性较差)
同样有效的方法是简单地使用
Set
并围绕其大小进行操作: