Pb arrayList

Pb arrayList - Java - Programmation

Marsh Posté le 23-12-2004 à 21:17:06    

Bonjour à tous,  
 
J'ai un petit souci avec un objet de type ArrayList.
En effet, j'ai declaré un objet de cette façon :  

Code :
  1. ArrayList liste=new ArrayList()


Dans cette liste, j'ai des éléments d'un type numero.
J'aimerai afficher les éléments de cette liste de la façon suivante :

Code :
  1. System.out.println(liste.get(i).numeroPrecedent


numeroPrecedent() est une procédure de la classe numero.
 
Mais évidemment j'ai une erreur : il me dis que la procédure numeroPrecedent() n'est pas declaré dans la classe OBJECT.
 
Comment pourrai-je faire?
 
Merci d'avance.

Reply

Marsh Posté le 23-12-2004 à 21:17:06   

Reply

Marsh Posté le 23-12-2004 à 21:32:21    

Suis je obliger de "caster" le resulat?
 
 
numero e=(numero) listeExigence.get(i);
System.out.println("Numero : "+e.numeroPrecedent());

Reply

Marsh Posté le 23-12-2004 à 21:33:54    

Tu dois caster liste.get(i) en une instance de la classe voulue, car comme toutes les collections, celle-ci travaille avec des Objects, et get(int) te renvoit un Object. Tu ne nous dis cependant pas ce que tu as mis dans la liste.
 
Par exemple :
 

Code :
  1. ArrayList liste = new ArrayList();
  2. Customer c = new Customer("foo" );
  3. liste.add(c);


 
Tu récupères via:
 

Code :
  1. ((Customer)liste.get(i)).numeroPrecedent();


 
Et tu t'empresses de rendre numero précédent private et de fournir des accesseurs getPreviousNumber() et setPreviousNumber() avant que les choses tournes mal : "touche pas à mon objet, passe par une méthode".


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 23-12-2004 à 21:35:01    

joquetino a écrit :

Numero e=(Numero) listeExigence.get(i);


 [:moundir]  
Majuscules au noms de classes en Java !
 
EDIT: Tu aurais pu trouver par toi-même plutôt que de paresseusement poser la question  :o


Message édité par sircam le 23-12-2004 à 21:35:39

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 23-12-2004 à 22:01:17    

Code :
  1. ArrayList<Numero> liste = new ArrayList<Numero>()
  2. System.out.println(liste.get(i).numeroPrecedent)


 
Java 1.5 n'a pas introduit les types génériques pour rien ! Ca permet de supprimer tous ces cast tout laid  :kaola:

Reply

Marsh Posté le 23-12-2004 à 22:06:39    

Giz a écrit :

Code :
  1. ArrayList<Numero> liste = new ArrayList<Numero>()
  2. System.out.println(liste.get(i).numeroPrecedent)


 
Java 1.5 n'a pas introduit les types génériques pour rien ! Ca permet de cacher tous ces cast tout laid  :kaola:


Reply

Marsh Posté le 23-12-2004 à 22:09:53    

Giz a écrit :

Java 1.5 n'a pas introduit les types génériques pour rien ! Ca permet de supprimer tous ces cast tout laid  :kaola:


Qui te dit qu'il travaille forcément avec 1.5 ?
 
Tu crois qu'on peut toujours choisir ?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 23-12-2004 à 22:54:20    

sircam a écrit :

Qui te dit qu'il travaille forcément avec 1.5 ?
 
Tu crois qu'on peut toujours choisir ?


 
Ben s'il travaille avec le kit JDK1.4.X, la compatibilité est assurée (normalement elle est assurée pour une version d'écart). Bon après s'il est toujours en java 1.0, c'est clair que ça peut faire la gueule

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed