Для того, чтобы проверить сочинить() и andThen() методы funtional интерфейса функции я сделал простой код:Возврат объекта при использовании сочинить() или andThen() от функции <V, R>
public class Test {
public Trans testCompose() {
return new T1().compose(new T2());
}
}
interface Trans extends Function<File, File> {
}
class T1 implements Trans {
@Override
public File apply(File file) {
return null;
}
}
class T2 implements Trans {
@Override
public File apply(File file) {
return null;
}
}
Но как вы можете видеть, что этот код не будет компилироваться. Данная причина: экземпляр типа (v) V не существует, поэтому функция соответствует Trans.
multiple subjects о различиях расширений и супер в подстановочных знаках Я понимаю их использование в списке, но не совсем уверен, почему он не может скомпилироваться здесь.
Есть ли способ сохранить объект Trans в методе testCompose() или он обязательно должен возвращать функцию, чтобы компилировать код?