Я хочу создать @FunctionalInterface
в Java, который принимает в качестве параметра как Stream
s, так и Optional
. Я пытался это сделать, но поскольку они не имеют общего интерфейса, это кажется невозможным. Я также попытался использовать общий класс-оболочку, который вызывает @FunctionalInterface
, но поскольку мне нужны параметры типа во время выполнения, кажется, это невозможно.Функциональный интерфейс, принимающий поток или необязательный?
Минимальный пример:
@FunctionalInterface
public interface AcceptingInterface<S, T> {
T accept(S s);
}
public class Test<S, T> {
private final AcceptingInterface<S, T> funcInterface;
private final Class<S> source;
private final Class<T> target;
public Test(AcceptingInterface<S, T> a, Class<S> s, Class<T> t) {
this.funcInterface = a;
this.source = s;
this.target = t;
}
public T invoke(S s) {
return s == null ? null : this.funcInterface.accept(s);
}
public Class<S> getSource() {
return source;
}
public Class<T> getTarget() {
return target;
}
}
Может быть, мой подход не так ... Я хотел бы получить обратную связь и/или решение этой проблемы.
Не знаете, что вы пытаетесь реализовать, но вам, похоже, придется использовать шаблон адаптера, чтобы эти два совместить с вашим функциональным интерфейсом. –
@LyubomyrShaydariv Спасибо за вход, возможно, это путь, и я попробую. –