我有一些代码使用Java 8的功能写的,这意味着流和lambda表达式。现在,我已经在使用Java 7,是否有自动重构的IntelliJ使用该代码的可能性项目重用这样的代码?
例如,我必须重构一些代码,如下所示,变成简单for
/ while
循环。
Arrays.stream(values)
.distinct()
.limit(2)
.count();
是的,一直的IntelliJ“换上循环流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或更高。
你真的不需要太多,为当前逻辑代码,但(重构在这里似乎不是最佳的,少读给我ATLEAST。)
什么工作也仅仅是使用Set
和围绕它的大小工作:
Set<String> set = new HashSet<>(values);
System.out.println(set.size() > 2 ? 2 : set.size());