Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 扩展函数内部使用具有可为空边界的类型参数_Kotlin_Generics_Rx Java - Fatal编程技术网

Kotlin 扩展函数内部使用具有可为空边界的类型参数

Kotlin 扩展函数内部使用具有可为空边界的类型参数,kotlin,generics,rx-java,Kotlin,Generics,Rx Java,我收到以下警告,我不确定如何修复: 类型不匹配:使用具有可空边界的类型参数(T1,T2)->R,其中((T1,T2)->R)!这是意料之中的。此警告很快将成为错误 类型不匹配:使用了具有可为空边界的类型参数。在预期为R的位置使用了R。此警告很快将成为错误 作用 inline fun <T1, T2, R> combineLatest( observable1: Observable<T1>, observable2: Observable<T2>, cross

我收到以下警告,我不确定如何修复:

类型不匹配:使用具有可空边界的类型参数(T1,T2)->R,其中((T1,T2)->R)!这是意料之中的。此警告很快将成为错误 类型不匹配:使用了具有可为空边界的类型参数。在预期为R的位置使用了R。此警告很快将成为错误

作用

inline fun <T1, T2, R> combineLatest(
observable1: Observable<T1>,
observable2: Observable<T2>,
crossinline function: (T1, T2) -> R
): Observable<R> = Observable.combineLatest(
   observable1,
   observable2,
   { T1, T2 -> function(T1, T2) }
)
inlinefun组合测试(
可观察1:可观察,
可观察的2:可观察的,
交叉内联函数:(T1,T2)->R
):Observable=Observable.combinelatetest(
可观察到的1,
可观察到的2,
{T1,T2->函数(T1,T2)}
)

无法复制。在Kotlin 1.4.10中编译时没有错误。你能提供一个最小的可重复的例子吗?这个函数的意义是什么?它看起来像是在递归地调用自己。对我来说,每次我清理和构建时,它都会用kotlin 1.4.21给我警告@如果仔细观察,它不会自称为Tenfour04。它调用了
observatable.combinelateest
,因此您可以像
combinelateest(ob1,ob2){results here}
是的,在2.x上进行了复制。最初我尝试使用3.0.8。问题是,在2.x中,该方法缺少
@NonNull
注释,因此Kotlin对参数的可空性有点困惑。我相信你需要。无论如何,2.x支持将在几个月后停止。无法复制。在Kotlin 1.4.10中编译时没有错误。你能提供一个最小的可重复的例子吗?这个函数的意义是什么?它看起来像是在递归地调用自己。对我来说,每次我清理和构建时,它都会用kotlin 1.4.21给我警告@如果仔细观察,它不会自称为Tenfour04。它调用了
observatable.combinelateest
,因此您可以像
combinelateest(ob1,ob2){results here}
是的,在2.x上进行了复制。最初我尝试使用3.0.8。问题是,在2.x中,该方法缺少
@NonNull
注释,因此Kotlin对参数的可空性有点困惑。我相信你需要。无论如何,2.x支持将在几个月后停止。