Comment puis-je passer un paramètre à une méthode Java dont la signature de la méthode contient un type brut ? Mon exemple d'API est le suivant :
class P<T> {}
class Q {
public void f(P p[]) {}
}
Et ma tentative de l'appeler depuis Scala ressemble à ceci :
val q = new Q()
val p = new P()
val p_array = Array(p)
q.f(p_array)
Ce qui génère l'erreur de compilation suivante :
type mismatch;
found : Array[P[Nothing]]
required: Array[P[_]]
q.f(p_array)
Paramétrer p comme type P[Any] n'aide pas non plus. J'utilise la version 2.8 RC6.
Pour rappel, l'API qui m'a causé ce problème s'appelle org.teleal.cling.model.meta.LocalDevice Le constructeur semble prendre un argument paramétré 'deviceServices'. Cependant, le paramètre de type 'LocalService' également prend un paramètre, non fourni, ce qui donne une signature de méthode maladroite.