您好,我目前正在使用vertx rxjava,我发现我可以弄清楚为什么下面的接口可以用HttpResponse.body实现。
这是map接口的用法
Single<JsonObject> s1 = request1.rxSend().map(HttpResponse::body);如果我们看到Single的map实现是
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;
}正如我们所看到的,该实现不接受任何参数并返回值。为什么它与地图接口兼容?请给我开导一下。谢谢
发布于 2018-11-26 12:26:58
不要紧。当我尝试将方法引用更改为lambda时,我清楚了原因。rxSend输出是单一的。因此,映射将在其内部使用HttpResponse对象进行迭代/执行。愚蠢的问题,继续!
https://stackoverflow.com/questions/53474663
复制相似问题