Je veux tirer parti de l'avertissement que Scala émet quand une correspondance est manquante ("non exhaustive") - pour que je n'en oublie pas une (j'en ai des douzaines). L'exemple simplifié suivant montre ma tentative:Scala motif correspondant continuer à dire "match n'est pas exhaustive!"
sealed case class MESSAGE()
class SUCCESS_MESSAGE extends MESSAGE
class FAILURE_MESSAGE extends MESSAGE
def log(str: String, msgType: MESSAGE) {
msgType match {
case t:SUCCESS_MESSAGE => println("FAILURE: " + str)
case t:FAILURE_MESSAGE => println("SUCCESS: " + str)
}
}
Le problème est qu'il est écrit "correspondance non exhaustive!" bien que toutes les combinaisons possibles soient répertoriées. Si je mets le « cas _ => » là-bas, le point de l'ensemble de l'avertissement est invalidée pour moi parce que je pourrais ajouter
class INFO_MESSAGE extends MESSAGE
et aucun avertissement ne sera émis.
Existe-t-il une solution?
SUCCESS_MESSAGE doit imprimer "NON", êtes-vous bien sûr? –
Je recommande fortement de ne pas étendre une classe de cas en aucune circonstance. Juste FYI. – jsuereth