mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-08 21:52:48 +07:00
Fixes IDEA-302543 'Optional.get()' without 'isPresent()' in groupingBy Collector despite checking it earlier with filter in the stream GitOrigin-RevId: c562ca1479e32c16517474db937528808c1f0fb8
40 lines
1.3 KiB
Java
40 lines
1.3 KiB
Java
import java.util.*;
|
|
import java.util.stream.*;
|
|
|
|
class TestClassContainingOptional {
|
|
|
|
void test() {
|
|
List<TestClassContainingOptional> list = new ArrayList<>();
|
|
list.add(new TestClassContainingOptional("name1", "optional"));
|
|
list.add(new TestClassContainingOptional("name2"));
|
|
System.out.println(list.stream()
|
|
.filter(e -> e.getOptionalString().isPresent())
|
|
.collect(Collectors.groupingBy(e -> e.getOptionalString().get()))
|
|
);
|
|
System.out.println(list.stream()
|
|
.filter(e -> e.getOptionalString().isPresent())
|
|
.collect(Collectors.groupingBy(e -> e.getOptionalString().get(), Collectors.toSet()))
|
|
);
|
|
TreeMap<Object, Set<Object>> collect = list.stream()
|
|
.filter(e -> e.getOptionalString().isPresent())
|
|
.collect(Collectors.groupingBy(e -> e.getOptionalString().get(), TreeMap::new, Collectors.toSet()));
|
|
System.out.println(collect);
|
|
}
|
|
|
|
String name;
|
|
String optionalString = null;
|
|
|
|
|
|
public TestClassContainingOptional(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
public TestClassContainingOptional(String name, String optionalString) {
|
|
this.name = name;
|
|
this.optionalString = optionalString;
|
|
}
|
|
|
|
public Optional<String> getOptionalString() {
|
|
return Optional.ofNullable(optionalString);
|
|
}
|
|
} |