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

  • Lacces

    őstag

    Hi, nem értem a következő kódrészletben, hogy a this.tires.clear() hogy-hogy törli a metódus paraméterében lévő t paramétert is?

    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.setTires(carTires);
    System.out.println("After (1): " + car.getTires().size());
    System.out.println("After (2): " + carTires.size());
    }

    Kimenet:
    Before: 2
    After (1): 0
    After (2): 0

    Aminek nem örülök, azt tudom, hogy a this.tires.clear() csinálja ezt a mókát, ha ezt kikomenntezem, akkor az After-ek értéke 4 lesz... olyan, mintha a t paraméter tartalmát is törli...
    Mintha az addAll(t)-nél üres lenne a t paraméter.

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

Hirdetés