Soit la classe :
class TestSafeVarargs{
public static void main(String[] args){
System.out.println(max(12, 3, 8, 210));
}
// pas besoin ici de SafeVararg car pas de type générique
public static int max(int premier, int... lesAutres) {
int max = premier;
for(int i : lesAutres) {
if (i > max) max = i;
}
return max;
}
}
- Compiler cette classe et vérifier que la compilation ne génère aucun warning.
- Modifier cette classe de manière à ce que
max() travaille sur une liste de sous-classe d'entiers :
static <T extends Integer> T max(T premier, T... lesAutres){...}
- Vérifier que la compilation génère un warning ; utiliser -Xlint:unchecked pour avoir les détails du warning.
- Modifier la classe pour que la compilation passe sans warning.