Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to 'derefence' an object in Java

Tags:

java

class DogOwner {
    Dog dog;

    DogOwner(Dog dog) {
        this.dog = dog;
    }
}

class Dog {
    int age;

    Dog(int age) {
        this.age = age;
    }
}

DogOwner peter = new DogOwner(new Dog(2));
Dog max = peter.dog;
max.age = 3;

System.out.println(peter.dog.age); // 3

How can I retreive max from peter without max being a reference to the Dog owned by peter? In other words, I would like to be able to set max's age to 3 without peter's Dog being changed.

like image 825
Menno Avatar asked Feb 06 '26 20:02

Menno


1 Answers

You either have to clone peter.dog, or create a new instance based on it.

like image 164
NilsH Avatar answered Feb 12 '26 07:02

NilsH