Hirdetés
- Sony MILC fényképezőgépcsalád
- Régóta ott van a fiókban az Intel válasza az AMD-féle 3D V-Cache-re
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- TCL LCD és LED TV-k
- Milyen CPU léghűtést vegyek?
- Plazma TV topic
- MILC felhasználók szakmai topikja
- OLED TV topic
- 5.1, 7.1 és gamer fejhallgatók
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
Új hozzászólás Aktív témák
-
TBG
senior tag
Az egészet nem értem egyébként.
Car car = new Car();
car.addTire(new Tyre(10));
car.addTire(new Tyre(11));Ez a 3 sor megcsinálja azt, amit itt szeretnél tenni...
List<Tyre> carTires = car.getTires();
System.out.println("Before: " + carTires.size());
car.setTires(carTires);Gondolom, azt vártad, hogy lesz egy 4 elemű listád [10,11,10,11] értékekkel? Vagy mi volt az elképzelés?
Egyébként így működött volna:public class Car {
private List<Tyre> tires = new ArrayList<Tyre>();
public void setTires(List<Tyre> t) {
this.tires.clear();
this.tires.addAll(t);
}
// Egyéb lekérdező metódusok
}
public class CarTest {
public static void main(String[] args) {
Car car = new Car();
car.addTire(new Tyre(10));
car.addTire(new Tyre(11));
List<Tyre> carTires = car.getTires();
System.out.println("Before: " + carTires.size());
Car anotherCar = new Car();
anotherCar.setTires(carTires);
System.out.println("After (1): " + car.getTires().size());
System.out.println("After (2): " + anotherCarTires.size());
} -
WonderCSabo
félisten
A Java mindenhol referenciákat használ (kivéve a primitív típusokat, de itt most nincs olyan). Feltételezem a car.getTires() fv. car.tires listát adja vissza. Mivel referenciákról van szó, ekkor a main lokális változója, a carTires illetve a car.tires mező ugyanarra az objektumra fog mutatni. Ezután átadod a car.setTires(carTires) - el a carTirest, ami törli a belső saját listát. De a carTires is a belső listára mutat, tehát ugyanazt a listát törlöd ki! Ezután hozzáadod a belső listához ugyannak a már üres listának az elemeit, nyilván továbbra is üres marad.
Ez egy ismert jelenség, és direkt kitaláltak rá olyan mintákat, amivel ezt el lehet kerülni. Az egyik ilyen megoldás a defensive copy.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Xiaomi 15T Pro - a téma nincs lezárva
- Spórolós topik
- Sony MILC fényképezőgépcsalád
- Mozilla Firefox
- Régóta ott van a fiókban az Intel válasza az AMD-féle 3D V-Cache-re
- Kuponkunyeráló
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Xiaomi 15 Ultra - kamera, telefon
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- GIGABYTE GeForce RTX 4070 Ti GAMING OC
- Apple Watch Ultra (1. gen.) // 49mm // Black/Gray Trail Loop (M/L)
- Új, bontatlan G.SKILL 32GB (2x16GB) KIT DDR5 6000MHz CL36 Ripjaws M5 Neo RGB White EXPO - 10 év gari
- Új, bontatlan ADATA XPG 32GB (2x16GB) KIT DDR5 6000MHz CL30 Lancer Blade Black XMP/EXPO - 10 év gari
- Új, bontatlan ADATA XPG 48GB (2x24GB) KIT DDR5 6000MHz CL30 Lancer Blade RGB Black - 10 év garival!
- Bomba ár! Lenovo Miix 520-12IKB : i5-8G I 8GB I 256GB SSD I 12" 2K Touch I Cam I W11 I Garancia!
- Apple iPhone 14 Plus 256GB,Átlagos,Dobozával,12 hónap garanciával
- Navee S40 elektromos roller // Számla // Garancia //
- Akciós Windows 10 pro + Office 2019 professional plus csomag AZONNALI SZÁLLÍTÁS
- Fotó állvány eladó
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


