Sobes.tech
Назад к вопросам
Senior
5

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

Компании, где спрашивали
МТСМТС

Ответ от нейросети

sobes.tech AI

В вашем классе MyObject есть поля, конструктор и геттеры, но метод для получения коллекции anotherObjects не завершён. Вот пример корректного завершения класса с учетом неизменяемости (final) полей и предоставления доступа к коллекции:

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;
        // Чтобы сохранить неизменяемость, создаём неизменяемую копию коллекции
        this.anotherObjects = Collections.unmodifiableCollection(anotherObjects);
    }

    public String getObject1() {
        return object1;
    }

    public NotMyObject getNotMyObject() {
        return notMyObject;
    }

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

Такой подход гарантирует, что поля не будут изменены после создания объекта, а коллекция будет доступна только для чтения извне.