Bonjour Thelvin,
La définition de la class CurvesAbstract indique que le paramètre généric de la class extends de Curve<?,?,?> (voir mon premier post). Donc le compilateur sait que dans la déclaration CurvesAbstract<?> le ? est de type Curve<?,?,?>.
Je sais, au lieu d'écrire cela:
CurvesAbstract<?> curves = new CurvesAbstract<Curve<?,?,?>>();
j'aurai du écrire ceci:
CurvesAbstract<Curve<?,?,?>> curves = new CurvesAbstract<Curve<?,?,?>>();
Mais je suis fainéant. On se refait pas.
je ne pense pas que le problème vienne de là. Par soucis de prudence j'ai testé la deuxième écriture ci-dessus. j'ai le même message d'erreur:
The method addCurves(CurvesAbstract<Curve<?,?,?>>) in the type CurvesAbstract<Curve<?,?,?>> is not applicable for the arguments (CurvesSparam)
or je ne comprend pas, la méthode addCurves(CurvesAbstract<Curve<?,?,?>>) de la class CurvesAbstract<Curve<?,?,?>> devrait être applicable à un CurvesSparam puisque CurvesSparam hérite bien de CurvesAbstract<Curve<?,?,?>> ou plus exactement de CurvesAbstract<CurvesComplex> où CurvesComplex hérite de Curve<Complex, PointComplex, CurveComplex>
Pourtant le compilateur me dit le contraire.
Sébastien.
Partager