我对RxJava完全不熟悉。我正在访问一个返回Single<Location>
的方法。我需要Location
。这是一个使用Java 1.7的Android项目,所以没有lambdas,这就是为什么我被卡住了。我看到的每个例子和每本书都使用lambdas。如何在不使用lambdas的情况下从Location
获取此Single
?
locationProvider.getLastKnownLocationWithTimeout() // returns Single<Location>
.flatMap(/* what should go here? */);
答案 0 :(得分:3)
Here is the signature for Single<T>.flatMap
:
public final <R> Single<R> flatMap(Function<? super T,? extends SingleSource<? extends R>> mapper)
其中Function
为an interface with exactly one method, apply
。
所以在你的情况下,我相信你需要像
这样的东西locationProvider.getLastKnownLocationWithTimeout()
.flatMap(new Function<Location, Single<String>>() {
@Override
public Single<String> apply(Location location) {
// apply transformation to e.g. String here
}
});
其中类型String
是占位符,应根据您实际尝试完成的转换进行更改。
请注意,此答案是在IDE外部输入的,因此可能缺少一两个大括号。