Corrigé disponible
La classe Class
Travail à effectuer :
Le programme javap
fournit avec le JDK fait le travail demandé. On s'en servira pour voir le résultat attendu. Par exemple, javap -s java.util.ArrayList
donne le résultat suivant :
- public class java.util.ArrayList extends java.util.AbstractList
- implements java.util.List,java.util.RandomAccess,
- java.lang.Cloneable,java.io.Serializable {
- public java.util.ArrayList(int);
- Signature: (I)V
- public java.util.ArrayList();
- public java.util.ArrayList(java.util.Collection);
- public void trimToSize();
- public void ensureCapacity(int);
- public int size();
- public boolean isEmpty();
- public boolean contains(java.lang.Object);
- public int indexOf(java.lang.Object);
- public int lastIndexOf(java.lang.Object);
- public java.lang.Object clone();
- public java.lang.Object[] toArray();
- public java.lang.Object[] toArray(java.lang.Object[]);
- public java.lang.Object get(int);
- public java.lang.Object set(int, java.lang.Object);
- public boolean add(java.lang.Object);
- public void add(int, java.lang.Object);
- public java.lang.Object remove(int);
- public boolean remove(java.lang.Object);
- public void clear();
- public boolean addAll(java.util.Collection);
- public boolean addAll(int, java.util.Collection);
- protected void removeRange(int, int);
- }
public class java.util.ArrayList extends java.util.AbstractList
implements java.util.List,java.util.RandomAccess,
java.lang.Cloneable,java.io.Serializable {
public java.util.ArrayList(int);
Signature: (I)V
public java.util.ArrayList();
public java.util.ArrayList(java.util.Collection);
public void trimToSize();
public void ensureCapacity(int);
public int size();
public boolean isEmpty();
public boolean contains(java.lang.Object);
public int indexOf(java.lang.Object);
public int lastIndexOf(java.lang.Object);
public java.lang.Object clone();
public java.lang.Object[] toArray();
public java.lang.Object[] toArray(java.lang.Object[]);
public java.lang.Object get(int);
public java.lang.Object set(int, java.lang.Object);
public boolean add(java.lang.Object);
public void add(int, java.lang.Object);
public java.lang.Object remove(int);
public boolean remove(java.lang.Object);
public void clear();
public boolean addAll(java.util.Collection);
public boolean addAll(int, java.util.Collection);
protected void removeRange(int, int);
}
Une méthode toString() générique
Travail à effectuer :
- Utiliser l'introspection pour créer un méthode
toString()
générique. Il s'agit en pratique de faire une méthode toString
qui prend en paramètre un objet de type Object
et affiche la valeur de chacun de ses champs. Attention, si les champs sont des références sur d'autres objets on descendra en profondeur pour afficher "récursivement" leur valeur également.
- Comme il faut bien s'arrêter un jour, la méthode
toString
aura un deuxième paramètre qui est la profondeur à laquelle on souhaite descendre.