gpt4 book ai didi

java - Spliterator.OfInt 中 tryAdvance 的奇怪实现

转载 作者:行者123 更新时间:2023-12-01 22:28:10 26 4
gpt4 key购买 nike

它是如何工作的?怎样才能Consumer<? super Integer>被转换到IntConsumer ??

default boolean tryAdvance(Consumer<? super Integer> action) {
if (action instanceof IntConsumer) {
return tryAdvance((IntConsumer) action);
}
else {
if (Tripwire.ENABLED)
Tripwire.trip(getClass(),
"{0} calling Spliterator.OfInt.tryAdvance((IntConsumer) action::accept)");
return tryAdvance((IntConsumer) action::accept);
}
}

最佳答案

转换为绑定(bind)方法引用 action::accept 提供了一个目标类型,它等同于 lambda x -> action.accept( x)IntConsumer 目标类型导致此 lambda(它更愿意接受一个 Integer)适应接受一个 int(这将导致参数在传递给 action.accept 之前被隐式装箱())。

关于java - Spliterator.OfInt 中 tryAdvance 的奇怪实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30952893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com