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.