Problème de dédutant avec un generics
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:
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?