gpt4 book ai didi

java - Function.class 中下界通配符的目的是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:24 24 4
gpt4 key购买 nike

在 Java8 的 Function.class 中,我们有:

default <V> Function<V, R> compose(Function<? super V, ? extends T> before) {
Objects.requireNonNull(before);
return (V v) -> apply(before.apply(v));
}

撰写接受:

Function<? super V, ? extends T> before

而不是:

Function<V, ? extends T> before

“V”下限这一事实是否有任何合理的情况?

最佳答案

? super 允许返回的 Function 的输入类型 (V) 不同于参数输入类型。

例如,这与 ? super 版本但不是替代版本。

Function<Object, String> before = Object::toString;
Function<String, Integer> after = Integer::parseInt;
Function<Integer, Integer> composed = after.compose(before);

关于java - Function.class 中下界通配符的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38407344/

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