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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
	}
}