8

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));
}

Compose は以下を受け入れます:

Function<? super V, ? extends T> before

それよりも:

Function<V, ? extends T> before

「V」が下限であるという事実が問題になるもっともらしい状況はありますか?

4

1 に答える 1

5

? super、返さFunctionれる の入力タイプ ( V) が引数の入力タイプと異なることを許可します。

たとえば、これはバージョンでコンパイルされます? superが、代替バージョンではコンパイルされません。

Function<Object, String> before = Object::toString;
Function<String, Integer> after = Integer::parseInt;
Function<Integer, Integer> composed = after.compose(before);
于 2016-07-16T06:12:07.120 に答える