Scala中的静态内部类
在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
}
但这似乎不起作用:我的scalaInner
似乎在Outer
课堂外都看不到。一种解决方案当然是:
class Innerclass Outer(val inner: Inner)
这是确定-但因为我的课的名字,Inner
真是的“类型” Outer
和Outer
实际上有一个很长的名字。所以:
class SomeHorriblyLongNameTypeclass SomeHorriblyLongName(myType: SomeHorriblyLongNameType)
这是冗长而可怕的。我可以替换SomeHorriblyLongNameType
为just,Type
但是与它所关联的类之间没有明显的联系。ew
回答:
如果不需要访问内部类中的外部类,则可以执行以下操作(如果声明了内部类,则在Java中是不需要的static
):
object A{ class B {
val x = 3
}
}
class A {
// implementation of class here
}
println(new A.B().x)
以上是 Scala中的静态内部类 的全部内容, 来源链接: utcz.com/qa/399934.html