多参数F-有界多态类型的Scala存在类型

时间:2017-12-06 19:27:31

标签: scala types polymorphism type-parameter existential-type

我正在使用一个类,其类具有如下定义:

abstract class ParentClass[X, Y <: ParentClass[X, Y, M], M <: OtherClass[X, M]]

此类具有扩展此类的子类,如下所示:

abstract class ChildClass[B, C <: ChildClass[B, C, D], D <: OtherChildClass[B, D]] extends ParentClass[B, C, D]

该子类具有以这种方式扩展它的子类:

class SomeClass extends ChildClass[F, SomeClass, SomeOtherClass]

我如何处理ParentClass的泛型?例如,如果我想创建一个共享相同祖先类型Array的{​​{1}}个对象,我可以这样做:

ParentClass

但这并不尊重课堂定义中提出的类型界限 看起来存在类型是F-Bounded多态类型的主要解决方案之一,但我似乎无法找到使用处理这种情况的存在类型的解决方案,也没有看到任何关于存在类型的例子具有多于1个类型参数的类。我想它会起到这样的作用,但是还没有能够解决这个问题:

getArrayOfParentClass(): Array[ParentClass[_, _, _]]

1 个答案:

答案 0 :(得分:0)

您想要的语法是

.extraPaddingOnRight {
    padding-right: 1.5em;
}

.column {
    float: left;
    /* Theoretically 50%, but less because of extraPaddingOnRight */
    width: 40%;
}