我有以下类层次结构:
sealed class SubscriptionServiceResponse<T>
data class UserRecognized<T>(val recognizedUser: RecognizedUser, val response: T) : SubscriptionServiceResponse<T>()
data class UserNotRecognized<T>(val ignored: Boolean = true) : SubscriptionServiceResponse<T>()
但是,我更喜欢UserNotRecognized
只是object
- 类似于:
object UserNotRecognized : SubscriptionServiceResponse()
(ignored
参数就在那里,因为我无法创建没有任何参数的数据类。
有没有办法将object
定义为通用sealed class
的子类型?
答案 0 :(得分:4)
您可以使用Any
或Any?
,仅忽略非响应的泛型类型。从你的问题来看,我明白你并不关心对象的泛型类型,所以也许你根本不关心它
这样的事情:
sealed class SubscriptionServiceResponse<T> {
data class UserRecognized<T>(val bool: Boolean) : SubscriptionServiceResponse<T>()
object UserNotRecognized : SubscriptionServiceResponse<Any?>()
}
答案 1 :(得分:1)
您可以像这样指定泛型类型:
object UserNotRecognized : SubscriptionServiceResponse<Any>()