Cześć
Mamy interfejs Function, a w nim powiedzmy metodę andThen. Ogólna zasada działania jest mi znana, nie rozumiem samej implementacji.
public interface MyFunction<T, R> {
R apply(T t);
//ok
default <V> MyFunction<T, V> andThen(MyFunction<? super R, ? extends V> after) {
return (T t) -> after.apply(this.apply(t));
}
//not working
default MyFunction<T, R> andThen2(MyFunction<T, R> after) {
return (T t) -> after.apply(this.apply(t));
};
}
T - parametr funkcji, R - wynik zwracany, ale nie rozumiem idei literki V. No bo jeśli mam na wejściu funkcję <T,R> i robię do niej andThen to rezultatem tego jest w dalszym ciągu funkcja <T,R>. Pytanie brzmi po co jest V i dlaczego andThen2 nie działa.