Je débute avec les generics et je viens de tomber sur un problème qui m'échappe,
Voici le code d'une classe :
Le compilateur m'indique le message : "uses unchecked or unsafe operations.
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; } }
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?
Partager