Je débute avec les generics et je viens de tomber sur un problème qui m'échappe,
Voici le code d'une classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Couple<T extends  Comparable> {
	private T v1, v2;
	public Couple(T nv1, T nv2) {
		v1 = nv1;
		v2 = nv2;
	}
	public T max() {
		if(v1 != null && v2 != null) return null;
		if(v1.compareTo(v2)> 0)
			return v1;
		else 
			return v2;
	}
}
Le compilateur m'indique le message : "uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details"
Et après recompilation avec l'option Xlint, le nouveau message est :
[unchecked] unchecked call to compareTo(T) as a member of the raw type java.lang.Comparable
if(v1.compareTo(v2)> 0)
^
Il semble donc que je puisse avoir un problème avec v2, mais je ne vois pas lequel, en particulier, comment provoquer une erreur de convertion en utilisant max?