嗨,我目前正在研究vertx rxjava,我发现我可以理解为什么下面的接口可以用HttpResponse.body.实现
这是地图界面的用法
Single<JsonObject> s1 = request1.rxSend().map(HttpResponse::body);
如果我们看到单一是的地图实现
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;
}
正如我们所看到的,实现不接受任何参数并返回一个值。为什么它与地图界面兼容?请开导我。谢谢
永不终止。当我试图将方法引用更改为lambda时,我清楚地说明了原因。rxSend输出为Single。因此,映射将迭代/执行其中的HttpResponse对象。愚蠢的问题,继续!