我不明白“out T”在这段Kotlin代码中的作用。有人能详细解释一下吗?
sealed class ResultWrapper<out T> {
data class Success<out T>(val value: T): ResultWrapper<T>()
data class GenericError(val code: Int? = null, val error: ErrorResponse? = null): ResultWrapper<Nothing>()
object NetworkError: ResultWrapper<Nothing>()
}
1条答案
按热度按时间izkcnapc1#
T仅仅意味着类is正在使用一个特定类型的对象,但是我们在编译时不知道它是什么,所以我们暂时将它命名为T(你可以使用任何字母,T只是一个约定)。
这使得代码具有泛型性,我们不希望用Any代替T,因为稍后我们可能希望调用T类型对象的特定方法,而不必进行强制转换。