Sobes.tech
Senior

public class MyObject { private final String object1; private final NotMyObject notMyObject; private final Collection<AnotherObject> anotherObjects; //konstruktor //getterek public String getObject1(){ return object1; } public NotMyObject getNotMyObject(){ return notMyObject; } public //public MyObject(String object) }

sobes.tech MI

Válasz az MI-től

A MyObject osztályodban vannak mezők, konstruktor és getterek, de az anotherObjects gyűjtemény lekérdezésére szolgáló módszer nincs befejezve. Íme egy példa arra, hogyan lehet helyesen befejezni az osztályt, figyelembe véve a mezők végleges (final) változatlanságát, és biztosítva a hozzáférést a gyűjteményhez:

import java.util.Collection;
import java.util.Collections;

public class MyObject {
    private final String object1;
    private final NotMyObject notMyObject;
    private final Collection<AnotherObject> anotherObjects;

    public MyObject(String object1, NotMyObject notMyObject, Collection<AnotherObject> anotherObjects) {
        this.object1 = object1;
        this.notMyObject = notMyObject;
        // Az állandóság megőrzése érdekében létrehozunk egy változatlan másolatot a gyűjteményből
        this.anotherObjects = Collections.unmodifiableCollection(anotherObjects);
    }

    public String getObject1() {
        return object1;
    }

    public NotMyObject getNotMyObject() {
        return notMyObject;
    }

    public Collection<AnotherObject> getAnotherObjects() {
        return anotherObjects;
    }
}

Ez a megközelítés garantálja, hogy az objektum létrehozása után a mezők nem módosíthatók, és a gyűjtemény csak olvasható módon érhető el kívülről.