Keresés

Új hozzászólás Aktív témák

  • Szmeby

    tag

    válasz Ablakos #11888 üzenetére

    A part referenciája nem szűnik meg, ha arra gondoltál. A belepakolt Stringeket a clear ugyan eltávolítja a listából, de a part él és virul. Egy referencia akkor szűnik meg, amikor semmilyen más élő objektum nem hivatkozik rá (mert mondjuk az utolsó hivatkozást is felülcsapod valami más referenciával).
    Na meg a vezérlés kifutott a scope-jából is, ami a part esetén a metódus kapcsos zárójelei között található. (Ha a while ciklus kapcsos zárójelei közé tennéd a part deklarációt, akkor az lenne az ő scope-ja és minden körben új példány készülne belőle, de azt most nem akarod.)

    A csoda a listRecipes.add(new Recipe(part)); soron történik, a part referenciáját megjegyzi a recipe ojjektum is - immáron nem csak a part változó fog arra hivatkozni -, az ő referenciáját pedig beledobjuk a listRecipes listába, így az már nem vész el addig, amíg a listRecipes létezik.

    Tehát a clear helyett bátran csinálhatsz egy új lista objektumot a part változódnak, sőt illene is, ha nem akarod piszkálni a régi lista tartalmát, ami már a listRecipes bugyraiban pihen.

Új hozzászólás Aktív témák

Hirdetés