ezt az apróságot johannes schneider blogjában olvastam nemrég. bár viszonylag egyszerű a megoldás, azért el lehet rajta gondolkodni. adott az alábbi osztály:
class Car {
private final List<Tire> tires = new ArrayList<Tire>();
public void setTires( List<Tire> tires ) {
this.tires.clear();
this.tires.addAll( tires );
}
public void addTire( Tire tires ) {
this.tires.add( tires );
}
public List<Tire> getTires() {
return Collections.unmodifiableList( tires );
}
}
ezután a kérdés: mit ír ki az alábbi kód?
Car car = new Car(); car.addTire( new Tire() ); car.addTire( new Tire() ); List<tire> carTires = car.getTires(); System.out.println( "before: " + carTires.size() ); car.setTires( carTires ); System.out.println( "after1: " + car.getTires().size() ); System.out.println( "after2: " + carTires.size() );
a megoldást és a magyarázatot megtaláljátok Java Surprise: Setters/Getters and Collections.
Kategóriák
javaCímkék
java , kollekció , kollekciókFőoldalra ajánlom!
Eddig 6 komment érkezett
(
)
-
1. zmb
2010. 08. 17. 19:25 -
2. mhmxs
2010. 08. 18. 0:10Ha a fejtörő kategóriában lenne azt mondanám, hogy le sem fordul (el van ugyanis írva egy Tires), de így csak azt tudom mondani, hogy köszi, meg, hogy még.
-
3. akos.tajti
2010. 08. 18. 8:52@zmb igen, ez a tanulság :)
-
4. butcher
2010. 08. 18. 21:06Bekéne küldeni scjp kérdésnek had örüljenek a vizsgázok >D
-
5. akos.tajti
2010. 08. 19. 10:28@butcher maguktól is kreatívak a kérdésgyártók, egy ksi durvaságot bármikor kitalálnak :)
-
6. hron84
2010. 08. 25. 16:44Hmm... nekem is az lett volna a tippem, mint elsore gondolom sokaknak, hogy az unmodifiableList egy uj listaojjektum lesz, es csak az elemei ugyanazok, mint a eredeti listanak. De nem. Furi.
Mondj valamit
A szövegben nem lehet HTML-t használni, a linkeket pedig automatikusan aláhúzzuk. Az email cím megadása kötelezõ, de az oldalon nem jelenik meg. Ha van freeblogos felhasználóneved, itt bejelentkezhetsz.
Az IP címedet megjegyezzük, de ezt csak a komment spam jellegének vizsgálatához használjuk fel.


Erdekes. Asszem celeszeru az UnmodifiableListre ugy nezni, mint az eredeti lista egy csak olvashato nezetere. Kicsit olyan, mint c++-ban a metodusok const minositoi.