Je suis un débutant Scala et ce morceau de code me fait du mal.modèle correspondant à une série de valeurs dans scala
Existe-t-il un moyen de faire correspondre les modèles pour s'assurer que tout ce que je passe à Data est du type correct? Comme vous pouvez le voir, je assez étranges ... types de données
class Data (
val recipient: String,
val templateText: String,
val templateHtml: String,
val blockMaps: Map[String,List[Map[String,String]]],
templateMap: Map[String,String]
)
...
val dataParsed = JSON.parseFull(message)
dataParsed match {
case dataParsed: Map[String, Any] => {
def e(s: String) = dataParsed get s
val templateText = e("template-text")
val templateHtml = e("template-html")
val recipient = e("email")
val templateMap = e("data")
val blockMaps = e("blkdata")
val dependencies = new Data(recipient, templateText, templateHtml, blockMaps, templateMap)
Core.inject ! dependencies
}
...
merci de votre réponse, mais cela ne fonctionne pas réellement. Je ne suis pas sûr que je fais tout correctement, mais je reçois cette erreur lors de la compilation avec fourmi, dans les deux cas. erreur: le type de modèle est incompatible avec le type attendu; [scalac] trouvé: String [scalac] requis: Option [Tous] [scalac] \t \t \t \t cas s: String => Certains (s) arrête à la chaîne, des cartes semble être bien .. – flagZ
chaque emballage value with Some résout le problème. case (Some (templateText: String), Some (...)) merci pour le début – flagZ