Il change la valeur de la propriété « couleur » de l'instance Car
stockées dans la table; une nouvelle valeur est et non créée. Aucun type pour myIntHashTable
. Notez que java.util.Map est généralement préféré à l'ancien java.util.Hashtable. Ce dernier fait le verrouillage.
Également, indexez-vous ces voitures par des valeurs entières consécutives? Si oui, vous voudrez peut-être une forme de List
.
Vous voulez probablement quelque chose comme ceci:
final Map<Integer, Car> cars = new HashMap<Integer, Car>();
final Car someCar = new Car();
cars.put(1, someCar);
final Car carInTable = cars.get(1). // refers to same object as someCar
carInTable.setColor(red);
Une List
mise en œuvre est similaire:
final List<Car> cars = new ArrayList<Car>();
final Car someCar = new Car();
cars.add(someCar);
final Car carInTable = cars.get(1). // refers to same object as someCar
carInTable.setColor(red);
Sans Generics, faites la même casting:
final Map cars = new HashMap();
final Car someCar = new Car();
cars.put(1, someCar);
final Car carInTable = (Car) cars.get(1). // refers to same object as someCar
carInTable.setColor(red);
final List cars = new ArrayList();
final Car someCar = new Car();
cars.add(someCar);
final Car carInTable = (Car) cars.get(1). // refers to same object as someCar
carInTable.setColor(red);
Vous pouvez toujours comparer les références d'objets avec ==
lorsque vous êtes dans doute de savoir si deux objets sont le même objet:
System.println.out("someCar and carInTable are " + ((someCar == carInTable) ? "" : "not ") + "the same object");
Merci! C'est J2ME donc il n'y a pas de support générique :( –
Ah J2ME, je vois (ne va pas pour Android? :)). Et vous êtes les bienvenus, bien sûr! –
Actuellement travaillant sur un projet blackberry;) –