Un projet sur lequel je travaille a le code de pièce suivant:Comment éviter 'L'argument de type non-variable est décoché puisqu'il est éliminé par effacement'?
val ftr1: Future[Try[(Date, String)]] = Future {
if (someCondition) {
// some code
val amazonClient = Try[new com.amazonaws.services.s3.AmazonS3Client(...)]
amazonClient.map { c =>
// doing some stuff
(new Date, "SomeString")
}
} else {
// some code
Failure(new Exception)
}
}
Future.firstCompletedOf(Seq(ftr1, anotherFuture)) map {
case t: Try[(Date, String)] => {
t match {
case Success(r) => //do some things
case _ => //do some another things
}
case _ => //do some another things
}
Ainsi, lors de la compilation je avertissement suivant:
[warn] argument de type non variable dans java.util.Date motif de type java.util.Date, String) est désélectionnée car elle est éliminée par l'effacement
et
[warn] affaire T: (date, String) => // faire des choses
Et fait, je ne comprends pas, ce que ces avertissements signifient et comment ce code peut être refactorisé afin de se débarrasser de ces avertissements?
http://stackoverflow.com/questions/1094173/how-do-i-get-around-type-effacement-sur-scala-ou-pourquoi-cant-i-get-le-type-paramete – fukanchik