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 Inner

class Outer(val inner: Inner)

这是确定-但因为我的课的名字,Inner真是的“类型” OuterOuter实际上有一个很长的名字。所以:

class SomeHorriblyLongNameType

class 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

回到顶部