Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Langage
Langage Forum d'entraide sur le langage Java et autres langages pour la JVM : syntaxe, POO, conventions, API standard. Avant de poster -> FAQ Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/12/2012, 13h36   #1
michelp3
Membre du Club
 
Inscription : novembre 2009
Messages : 142
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 142
Points : 41
Points : 41
Par défaut 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));
 
 
 
	}
}
michelp3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2012, 14h17   #2
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 278
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 278
Points : 32 754
Points : 32 754
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Elles ne sont absolument pas identiques. La première est une méthode statique publique qui prend en paramètre un Liste de comparable.
Code :
public static <T extends Comparable<? super T>>  T min(List<T> liste)
La seconde est une méthode d'instance non publique qui prend en paramètre une Liste d'objets.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h47.


 
 
 
 
Partenaires

Hébergement Web