Kotlin带型变参数的数据类如何设置泛型R上界为Throwable
你只需要为泛型参数R添加上界约束即可,正确声明代码如下:
data class MyClass<T, out R : Throwable>( val data: T? = null, val error: R? = null )
说明
- Kotlin 中使用
:为泛型参数指定上界,约束该泛型的所有实际传入类型都必须是上界类的子类或实现类 - 修改后
error字段只能接收Throwable子类的实例或者空值,完全符合限制error为异常类型的需求 - 原有的协变标识
out不需要调整,上界约束和协变声明可以共存
内容的提问来源于stack exchange,提问作者Andrew Kolubov
相关产品推荐
相关产品推荐

