在编写不同的RxJava运算符时遇到转换问题,
这是我的方法:
public Single<Set<User>> doWork() {
return calculate() //
.map(...) //
.collect(HashSet<User>::new, Set::add) //
.onErrorReturn(err -> {
return new HashSet<User>();
}).cast(Set.class);
}
此代码实际上可以在Eclipse中编译并运行良好,但是使用Maven进行编译时会出现以下编译错误:
Compilation failure incompatible types: cannot infer type-variable(s) U
[ERROR] (argument mismatch; java.lang.Class<java.util.Set> cannot be converted to java.lang.Class<? extends java.util.Set<com.util.user.User>>
我放置了.cast(Set.class)
,因为否则Eclipse无法编译它。
我似乎对编译不满意,因此我可能会正确返回Set<User>
(如果我删除了最后一个onErrorReturn
调用,则编译正常)。
有什么主意要正确吗?
答案 0 :(得分:0)
该解决方案是在"styles": [
"src/styles.css",
"node_modules/toastr/build/toastr.min.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/toastr/build/toastr.min.js"
]
链的尽头添加另一个map
调用
cast
希望它可以帮助任何人...