【发布时间】:2013-10-12 19:20:34
【问题描述】:
我需要使用内部类或抽象类型作为外部类型的类型参数,例如在下面高度简化的示例中:
trait A[T <: Ordered[T]] {
}
class B extends A[C] { //<-- Compiler error, type C not found.
class C extends Ordered[C] {
}
}
我在我的库中遇到了一个相当棘手的设计问题,我没有看到任何令人满意的方法来避免这种构造。我尝试了许多不同的方法来从类型参数中引用内部类,但都无济于事。
我的问题是:
有没有办法从外部类的类型参数中引用内部类?
如果不是,是否存在逻辑上的不一致性,或者仅仅是编译器和语言规范的限制?
【问题讨论】:
标签: scala generics inner-classes abstract-type