Quel est l'analogue à Scala de le faire en Java:classes internes statiques dans scala
public class Outer {
private Inner inner;
public static class Inner {
}
public Inner getInner() { return inner; }
}
Je veux spécifiquement ma classe intérieure pour pas doivent avoir un nom complet - à savoir que je veux Trade.Type
, pas TradeType
. Ainsi, dans Scala je l'imaginais peut-être quelque chose comme:
class Outer(val inner: Inner) {
object Inner
}
Mais cela ne semble pas fonctionner: mon scala Inner
ne semble pas seulement être visible de l'extérieur de la classe Outer
. Une solution serait bien sûr:
class Inner
class Outer(val inner: Inner)
Ce qui est OK - mais à cause des noms de mes classes, Inner
est vraiment le « type » de la Outer
et Outer
a en fait un nom long. Donc:
class SomeHorriblyLongNameType
class SomeHorriblyLongName(myType: SomeHorriblyLongNameType)
Qui est verbeux et horrible. Je pourrais remplacer SomeHorriblyLongNameType
avec juste Type
mais il n'y aurait alors aucune connexion évidente entre elle et la classe à laquelle elle était liée. Ouf
Si vous déclarez un objet à l'intérieur d'une classe dans Scala, il n'est alors pas visible de l'extérieur de cette classe (ou je n'arrive pas à comprendre comment le faire). Votre réponse n'est pas tout à fait ce que je demandais: je demandais comment je pourrais faire quelque chose dans Scala, par opposition à demander comment Scala traiterait les statiques Java –
J'ai développé sur l'origine qn –