Привет, я сейчас нахожусь в vertx rxjava и обнаружил, что могу понять, почему интерфейс ниже может быть реализован с помощью HttpResponse.body.
Это использование интерфейса карты
Single<JsonObject> s1 = request1.rxSend().map(HttpResponse::body);
Если мы видим, что реализация Single для карты имеет вид
public final <R> Single<R> map(Func1<? super T, ? extends R> func)
, то есть Func1 - это функциональный интерфейс с подробностями ниже
public interface Func1<T, R> extends Function {
R call(T t);
}
Интерфейс позволяет метод, который принимает 1 входной аргумент,и вернуть тип значения R. В то время как подробности реализации HttpResponse.Body приведены ниже
public T body() {
if (cached_6 != null) {
return cached_6;
}
T ret = (T)__typeArg_0.wrap(delegate.body());
cached_6 = ret;
return ret;
}
Как мы видим, реализация не принимает аргументов и возвращает значение.Почему он совместим с интерфейсом карты?Пожалуйста, просветите меня.Спасибо