Tag: 逆变

在Kotlin中抽象容器工具的generics进/出?

我正在创建一个抽象工具类,在另一组外部类(不受我控制)上运行。 外部类在概念上在界面的某些点上是相似的,但是对于访问它们的类似属性具有不同的语法。 他们也有不同的语法来应用工具的操作结果。 我用@hotkey根据这个答案创建了一个带有内部类的数据类。 这是generics的问题:外部类基本上是元素的容器。 每个类的容器types是不同的。 某些容器具有固定的元素types,而其他容器具有通用元素types。 我很难将这个generics概念in vs, out ,协方差与这个模型的逆变。 下面是一个简单的例子,使用CharSequence和List的切片,就类似于这个generics, // *** DOES NOT COMPILE *** data class Slicer(val obj: C, val beg: Int, val end: Int) { // C is container type; E is element type // but unsure how to apply in/out properly inner abstract class SObj{ abstract val len: Int […]