在Scala中,如何实现Java中的这个功能:
public class Outer {
private Inner inner;
public static class Inner {
}
public Inner getInner() { return inner; }
}
我特别希望我的内部类不必具有完全限定的名称 - 例如,我想要 Trade.Type
,而不是 TradeType
。因此,在Scala中,我想象它可能是这样的:
class Outer(val inner: Inner) {
object Inner
}
但是这似乎不起作用:我的Scala Inner
从外部无法看到。当然,一个解决方案是:
class Inner
class Outer(val inner: Inner)
这是可以的 - 但由于我的类名,Inner
实际上是 Outer
的"类型",而 Outer
其实有一个很长的名称。因此:
class SomeHorriblyLongNameType
class SomeHorriblyLongName(myType: SomeHorriblyLongNameType)
这段代码非常啰嗦可读性差。我可以用Type
替换掉SomeHorriblyLongNameType
,但它和相关的类之间就没有明显的联系了。