Problème de polymorphisme
Bonjour tous le monde.
J'essaie de faire une classe vecteur qui utilise des coordonnées.
La classe Coord est une classe abstraite et générique.
J'ai un problème d'inférence de type semble-t-il.
Je ne comprends pas pourquoi puisque _Coord étend Coord. Il devrait alors être en mesure d'utiliser la méthode.
Voici mes trois classes.
J'espère trouver une solution. Merci beacoup.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
/* PRE_MACRO use CartesianVector2d */
/* LABEL CartesianVector2d
*import roomMap.CartesianVector2d;
*/
import roomMap.Coord;
import roomMap.Vector;
class roomMap {
/* Run entry */
public static void main(String[] args){
/* PRE_MACRO use CartesianVector2d */
/* LABEL CartesianVector2d
CartesianVector2d v1 = new CartesianVector2d(2,0);
CartesianVector2d v2 = new CartesianVector2d(2,4);
System.out.print(v1);
*/
Coord<Double> p1;
}
}
package roomMap;
public abstract interface Coord<_Number extends Number> {
public abstract Coord<_Number> getDiffFrom(Coord<_Number> c);
}
package roomMap;
import roomMap.Coord;
public class Vector< _Coord extends Coord<? /*extends Number*/> > {
private _Coord m_A; //look if it is pointer :)
private _Coord m_B;
private _Coord m_direction; //private setter
Vector (_Coord A, _Coord B) {
m_A = A;
m_B = B;
m_direction = A.getDiffFrom(B); // Le probleme semble etre ici
}
} |