Was die analogen in Scala ist dies in Java zu tun:Statische innere Klassen in scala
public class Outer {
private Inner inner;
public static class Inner {
}
public Inner getInner() { return inner; }
}
ich meine innere Klasse will speziell auf nicht habe einen voll qualifizierten Namen haben - also ich Trade.Type
will, nicht TradeType
. So in Scala stellte ich mir es so etwas wie sein könnte:
class Outer(val inner: Inner) {
object Inner
}
Aber das scheint nicht zu funktionieren: meine scala Inner
scheint nicht nur von außerhalb der Outer
Klasse sichtbar zu sein. Eine Lösung wäre natürlich:
class Inner
class Outer(val inner: Inner)
das ist ok - aber wegen der Namen meiner Klassen, Inner
ist wirklich der „Typ“ der Outer
und Outer
hat tatsächlich einen langen Namen. Also:
class SomeHorriblyLongNameType
class SomeHorriblyLongName(myType: SomeHorriblyLongNameType)
Welches ist ausführlich und schrecklich. Ich könnte SomeHorriblyLongNameType
durch nur Type
ersetzen, aber es würde dann keine offensichtliche Verbindung zwischen ihr und der Klasse geben, mit der sie verwandt war. Puh
Wenn Sie ein Objekt innerhalb einer Klasse in Scala deklarieren, ist es dann von außerhalb dieser Klasse nicht sichtbar (oder ich konnte nicht herausfinden, wie man es macht). Ihre Antwort ist nicht ganz das, was ich frage: Ich wurde gefragt, wie ich etwas in Scala tun konnte, im Gegensatz zu fragen, wie Scala behandeln würde Java Statik –
I erweitert habe auf der orig qn –