阅读 Ordesky 关于 Scala 的书的第 20 章,我发现内部类是路径依赖的。在其他特性中,这意味着它们只能在外部类中实例化或提供外部类实例。
问题出现了:我想static inner class
在 Scala 中实现一个,但作者认为这是不可能的。我立即想到让“内部类”(让我们称之为Inner
)成为Outer
的伴随对象的成员。
这个问题的公认答案似乎指向了这个方向。但这会导致一个问题:Inner
's type ins't Outer#Inner
,我可以尝试类似:
object Outer {
class Inner extends Outer#Inner { }
}
然而,这不起作用。你知道这方面的工作吗?我有预感它可以用抽象类型来完成,但我不确定。
请注意,由于其类型,创建Inner
伴随对象的内部类并不完全等同于具有非路径依赖Inner
类。