降级的Java 8流到Java中的IntelliJ IDEA 7圈

问题描述 投票:5回答:2

我有一些代码使用Java 8的功能写的,这意味着流和lambda表达式。现在,我已经在使用Java 7,是否有自动重构的IntelliJ使用该代码的可能性项目重用这样的代码?

例如,我必须重构一些代码,如下所示,变成简单for / while循环。

Arrays.stream(values)
      .distinct()
      .limit(2)
      .count();
java intellij-idea java-8 refactoring java-7
2个回答
7
投票

是的,一直的IntelliJ“换上循环流API链”重构选项。它把光标放在Alt+Enter方法后,按Arrays.stream()后弹出:

enter image description here

这会产生这样的代码:

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或更高。


1
投票

你真的不需要太多,为当前逻辑代码,但(重构在这里似乎不是最佳的,少读给我ATLEAST。)

什么工作也仅仅是使用Set和围绕它的大小工作:

Set<String> set = new HashSet<>(values);
System.out.println(set.size() > 2 ? 2 : set.size());
© www.soinside.com 2019 - 2024. All rights reserved.