Что такое аналог в 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
просто не кажется видимым извне класса Outer
. Разумеется, одним из решений будет:
class Inner
class Outer(val inner: Inner)
Это нормально - но из-за имен моих классов Inner
действительно "тип" Outer
и Outer
на самом деле имеет длинное имя. Итак:
class SomeHorriblyLongNameType
class SomeHorriblyLongName(myType: SomeHorriblyLongNameType)
Это многословно и ужасно. Я мог бы заменить SomeHorriblyLongNameType
только Type
, но тогда не было бы очевидной связи между ним и классом, к которому он был связан. Уф