Generics 在不传递泛型的情况下确定类型
我有一个得到扩展的类,它接受一个泛型类型,而泛型类型本身也接受一个类型:Generics 在不传递泛型的情况下确定类型,generics,kotlin,Generics,Kotlin,我有一个得到扩展的类,它接受一个泛型类型,而泛型类型本身也接受一个类型: 抽象类基类 当然,上面的代码虽然显示了传递的泛型的结构,但它是无效的,因此我必须这样编写: 抽象类基类 这意味着我必须写出两种类型: classmyclass:BaseClass() 既然MyT为BaseT声明了一个要使用的类型,那么有没有任何方法可以从T中获取U的类型而不那么冗长?我只想编写BaseClass,并让它明白既然classmyt:BaseT,它应该期望U的关联子类型,对于BaseT的任何子类型。我是不是想得太
抽象类基类
当然,上面的代码虽然显示了传递的泛型的结构,但它是无效的,因此我必须这样编写:
抽象类基类
这意味着我必须写出两种类型:
classmyclass:BaseClass()
既然
MyT
为BaseT
声明了一个要使用的类型,那么有没有任何方法可以从T
中获取U
的类型而不那么冗长?我只想编写BaseClass
,并让它明白既然classmyt:BaseT
,它应该期望U
的关联子类型,对于BaseT
的任何子类型。我是不是想得太多了?正确的答案是“同时编写泛型并停止抱怨”吗?抽象类基类
这正是我所需要的!我最近刚刚读了in
/out
,但没有意识到它能解决这里的问题。你能写一个解释为什么这样做的答案让我接受吗?