mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-160325 Replace Arrays.asList(...).stream() with Stream.of(...) quick fix removes generic type parameter which may lead to compilation error
This commit is contained in:
+15
-6
@@ -160,10 +160,12 @@ public class SimplifyStreamApiCallChainsInspection extends BaseJavaBatchLocalIns
|
||||
}
|
||||
|
||||
private static abstract class ArraysAsListFix extends CallChainFixBase {
|
||||
private final String myMethodFQN;
|
||||
private final String myClassName;
|
||||
private final String myMethodName;
|
||||
|
||||
private ArraysAsListFix(String methodFQN) {
|
||||
myMethodFQN = methodFQN;
|
||||
private ArraysAsListFix(String className, String methodName) {
|
||||
myClassName = className;
|
||||
myMethodName = methodName;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -173,14 +175,21 @@ public class SimplifyStreamApiCallChainsInspection extends BaseJavaBatchLocalIns
|
||||
methodCall.getArgumentList().replace(qualifierCall.getArgumentList());
|
||||
|
||||
final Project project = methodCall.getProject();
|
||||
final PsiExpression newMethodExpression = JavaPsiFacade.getElementFactory(project).createExpressionFromText(myMethodFQN, methodCall);
|
||||
PsiType[] parameters = qualifierCall.getMethodExpression().getTypeParameters();
|
||||
String replacement;
|
||||
if(parameters.length == 1) {
|
||||
replacement = myClassName + ".<" + parameters[0].getCanonicalText() + ">" + myMethodName;
|
||||
} else {
|
||||
replacement = myClassName + "." + myMethodName;
|
||||
}
|
||||
final PsiExpression newMethodExpression = JavaPsiFacade.getElementFactory(project).createExpressionFromText(replacement, methodCall);
|
||||
JavaCodeStyleManager.getInstance(project).shortenClassReferences(methodCall.getMethodExpression().replace(newMethodExpression));
|
||||
}
|
||||
}
|
||||
|
||||
private static class ArraysAsListVarargFix extends ArraysAsListFix {
|
||||
private ArraysAsListVarargFix() {
|
||||
super(CommonClassNames.JAVA_UTIL_STREAM_STREAM + "." + OF_METHOD);
|
||||
super(CommonClassNames.JAVA_UTIL_STREAM_STREAM, OF_METHOD);
|
||||
}
|
||||
|
||||
@Nls
|
||||
@@ -193,7 +202,7 @@ public class SimplifyStreamApiCallChainsInspection extends BaseJavaBatchLocalIns
|
||||
|
||||
private static class ArraysAsListSingleArrayFix extends ArraysAsListFix {
|
||||
private ArraysAsListSingleArrayFix() {
|
||||
super(CommonClassNames.JAVA_UTIL_ARRAYS + "." + STREAM_METHOD);
|
||||
super(CommonClassNames.JAVA_UTIL_ARRAYS, STREAM_METHOD);
|
||||
}
|
||||
|
||||
@Nls
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// "Replace Arrays.asList().stream() with Arrays.stream()" "true"
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class Main {
|
||||
public Stream<Object> stream() {
|
||||
Number[] numbers = {1, 2.0, 3};
|
||||
return Arrays.<Object>stream(numbers).filter(Objects::nonNull);
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// "Replace Arrays.asList().stream() with Stream.of()" "true"
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
List<List<Object>> list = Stream.<List<Object>>of(Arrays.asList(1,2,3), Arrays.asList(1.0, 2.0, 3.0))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// "Replace Arrays.asList().stream() with Arrays.stream()" "true"
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class Main {
|
||||
public Stream<Object> stream() {
|
||||
Number[] numbers = {1, 2.0, 3};
|
||||
return Arrays.<Object>asList(numbers).st<caret>ream().filter(Objects::nonNull);
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// "Replace Arrays.asList().stream() with Stream.of()" "true"
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
List<List<Object>> list = Arrays.<List<Object>>asL<caret>ist(Arrays.asList(1,2,3), Arrays.asList(1.0, 2.0, 3.0)).stream()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user