¿Cuál es el análogo en la Scala de hacer esto en Java:clases internas estáticas en Scala
public class Outer {
private Inner inner;
public static class Inner {
}
public Inner getInner() { return inner; }
}
Quiero específicamente mi clase interna a no tiene que tener un nombre completo - es decir, quiero Trade.Type
, no TradeType
. Así que en Scala me imaginaba que podría ser algo como:
class Outer(val inner: Inner) {
object Inner
}
Pero esto no parece funcionar: mi Scala Inner
no parece ser visible desde fuera de la clase Outer
. Una solución sería, por supuesto:
class Inner
class Outer(val inner: Inner)
que está bien - pero debido a los nombres de mis clases, Inner
es realmente el "tipo" de la Outer
y Outer
en realidad tiene un nombre largo. Entonces:
class SomeHorriblyLongNameType
class SomeHorriblyLongName(myType: SomeHorriblyLongNameType)
Que es verboso y horrible. Podría reemplazar SomeHorriblyLongNameType
con solo Type
pero no habría una conexión obvia entre él y la clase con la que estaba relacionado. Uf
Si declara un objeto dentro de una clase en Scala, entonces no es visible desde fuera de esa clase (o no pude encontrar la manera de hacerlo). Su respuesta no es exactamente lo que estaba preguntando: estaba preguntando cómo podía hacer algo en Scala, en lugar de preguntarle cómo trataría Scala las estáticas de Java –
He expandido en el qn original –