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」が下限であるという事実が問題になるもっともらしい状況はありますか?