IDEA-163627 Simplify optional.isPresent() inspection could better handle some specific cases

IDEA-163462 Simplify Optional.isPresent() ? Optional.get() : ...
This commit is contained in:
Tagir Valeev
2016-11-07 17:23:00 +07:00
parent 0000a95ba2
commit 21564bba7b
49 changed files with 628 additions and 236 deletions
@@ -0,0 +1,17 @@
// "Replace with findFirst()" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
public class Main {
private static String test(List<String> list) {
Optional<String> found = list.stream().filter(Objects::nonNull).findFirst();
return found.orElse(null);
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}
@@ -0,0 +1,15 @@
// "Replace with findFirst()" "true"
import java.util.List;
import java.util.Optional;
public class Main {
public Optional<String> trim(String s) {
return s.isEmpty() ? Optional.empty() : Optional.of(s.trim());
}
public Optional<String> test(List<Object> objects) {
Optional<String> result = objects.stream().filter(obj -> obj instanceof String).findFirst().flatMap(obj -> trim((String) obj));
return result;
}
}
@@ -0,0 +1,23 @@
// "Replace with findFirst()" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
public class Main {
private static String test(List<String> list) {
Optional<String> found = Optional.empty();
for (String s : li<caret>st) {
if (Objects.nonNull(s)) {
found = Optional.of(s);
break;
}
}
return found.orElse(null);
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}
@@ -0,0 +1,21 @@
// "Replace with findFirst()" "true"
import java.util.List;
import java.util.Optional;
public class Main {
public Optional<String> trim(String s) {
return s.isEmpty() ? Optional.empty() : Optional.of(s.trim());
}
public Optional<String> test(List<Object> objects) {
Optional<String> result = Optional.empty();
for(Object obj : obj<caret>ects) {
if(obj instanceof String) {
result = trim((String)obj);
break;
}
}
return result;
}
}