mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-30 18:28:55 +07:00
testdata for IDEA-147511
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.Optional;
|
||||
import java.util.function.BinaryOperator;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
class Bug {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Stream<String> tokenStream = Stream.of("hello", "world");
|
||||
|
||||
Comparator<String> order = Comparator.naturalOrder();
|
||||
Min<String> min = tokenStream.collect(
|
||||
() -> new Min<>(order),
|
||||
Min::accept,
|
||||
Min::combine);
|
||||
|
||||
System.out.printf("Min = %s%n",
|
||||
min.asOptional().orElse(null));
|
||||
}
|
||||
|
||||
static class Min<T> implements Consumer<T> {
|
||||
|
||||
private final BinaryOperator<T> minOf;
|
||||
private T min;
|
||||
|
||||
public Min(Comparator<? super T> order) {
|
||||
this.minOf = BinaryOperator.minBy(order);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(T t) {
|
||||
this.min = min != null ? minOf.apply(min, t) : t;
|
||||
}
|
||||
|
||||
public void combine(Min<T> other) {
|
||||
if (other.min != null) {
|
||||
accept(other.min);
|
||||
}
|
||||
}
|
||||
|
||||
public Optional<T> asOptional() {
|
||||
return Optional.ofNullable(min);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user