200 votes

Comment pour monter une variable dans la Scala ?

Étant donné une variable avec le type , comment monter à dans la Scala ?

284voto

Daniel Spiewak Points 30706

La technique préférée consiste à utiliser le pattern matching. Cela vous permet de traiter le cas où la valeur en question n'est pas d'un type donné:

g match {
  case g2: Graphics2D => g2
  case _ => throw new ClassCastException
}

Ce bloc réplique de la sémantique de l' asInstanceOf[Graphics2D] méthode, mais avec plus de souplesse. Par exemple, vous pouvez fournir des différentes branches de différents types, de manière efficace l'exécution de plusieurs conditionnelle jette en même temps. Enfin, vous n'avez pas vraiment besoin de lancer une exception dans le fourre-tout de la zone, vous pouvez également revenir null (ou, de préférence, None), ou vous pouvez entrer certains de secours de la branche qui fonctionne sans Graphics2D.

En bref, c'est vraiment la voie à suivre. C'est un peu plus du point de vue syntaxique volumineux que asInstanceOf, mais la flexibilité est presque toujours la peine.

227voto

Eugene Yokota Points 43213
g.asInstanceOf[Graphics2D];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X