Назад к вопросам
МТС
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;
}
}
Такой подход гарантирует, что поля не будут изменены после создания объекта, а коллекция будет доступна только для чтения извне.