Generics : méthodes identiques
Bonjour à tous,
Peut-on me dire pourquoi ces 2 méthodes identiques ne fonctionnent pas de
manière identique :
la méthode min2 --> problème avec compareTo
Code:
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
package ajeter;
import java.util.ArrayList;
import java.util.List;
class A {
}
class B extends A{
}
class C <T> {
String mot = "pour TEST";
static String mot2 = "pour TEST2";
public static <T extends Comparable<? super T>>
T min(List<T> liste) {
if (liste == null || liste.isEmpty())
return null;
T min = liste.get(0);
for (int i = 1; i < liste.size(); i++) {
if (liste.get(i).compareTo(min) < 0)
min = liste.get(i);
System.out.println("Attribut static de méthode non static : " + mot2);
}
return min;
}
T min2(List<T> liste) {
if (liste == null || liste.isEmpty())
return null;
T minimum = liste.get(0);
for (int i = 1; i < liste.size(); i++) {
if (liste.get(i).compareTo(minimum) < 0)
minimum = liste.get(i);
System.out.println("Attribut static de méthode non static : " + mot2);
}
return minimum;
}
}
public class Nice2 {
public static void main(String[] args) {
C<Number> c = new C<Number>();
List<Integer> li = new ArrayList<Integer>();
li.add(new Integer(15));
li.add(new Integer(17));
System.out.println("Le minimum : " + c.min(li));
System.out.println("Le minimum2 : " + c.min2(li));
}
} |