Что такое аналог в 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, но тогда не было бы очевидной связи между ним и классом, к которому он был связан. Уф