Kotlin 使用Int创建行为主题
如何使用Int创建此主题的实例:Kotlin 使用Int创建行为主题,kotlin,Kotlin,如何使用Int创建此主题的实例: class NonNullableBehaviourSubject<T : Any>(defaultValue: T) : Subject<T>() { private val behaviourSubject = BehaviorSubject.createDefault<T>(defaultValue) } 但我使用以下命令得到一个编译错误: emailValidationSubject.onNext(error?
class NonNullableBehaviourSubject<T : Any>(defaultValue: T) : Subject<T>() {
private val behaviourSubject = BehaviorSubject.createDefault<T>(defaultValue)
}
但我使用以下命令得到一个编译错误:
emailValidationSubject.onNext(error?.errorResId)
我得到的编译错误是:
Required: Companion.Int
Found: Int?
此外,Int不能为null。但是,NonNullableBehaviorSubject确实定义了一个可为null的参数。您的
error
对象具有可为null的类型,并且您对其使用安全调用(?。
),因此整个表达式是可为null的。
要使值不可为null,您可以断言value not null(
error!!.errorResId
如果error
为null,则会崩溃,error?.errorResId!!
如果整个表达式为null,则会崩溃)或者为null情况提供回退值((error?:DEFAULT\u error).errorResId
或error?.errorResId?:默认的\u error\u RES
)。您的error
对象具有可空类型,并且您对其使用安全调用(?。
),因此整个表达式可空。
要使值不可为null,您可以断言value not null(
error!!.errorResId
如果error
为null,则会崩溃,error?.errorResId!!
如果整个表达式为null,则会崩溃)或者为null情况提供回退值((error?:DEFAULT\u error).errorResId
或error?.errorResId?:默认值\u error\u RES
)。它也应该是非空行为主体(0)
(或其他一些Int
)而不是非空行为主体(Int)
。它还应该是非空行为主体(0)
(或其他一些Int
)而不是非空行为主题(Int)
。
Required: Companion.Int
Found: Int?