Я прочитал this question о неизменных объектах и был оставлен с вопросом относительно неизменных объектов и конечного поля:Почему переменная экземпляра является окончательной?
Зачем нужна переменная экземпляра в классе неизменяемых быть окончательным?
Для примера рассмотрим этот непреложный класс:
public final class Immutable
{
private final int someVal;
public Immutable(int someVal)
{
this.someVal= someVal;
}
public int getVal() {
return val;
}
}
Если в приведенном выше коде нет никаких установленных методов и переменная экземпляра устанавливается только внутри конструктора, почему это необходимо, чтобы переменная экземпляра объявлена финал?
снова процитированный вопрос, а не переменные экземпляра должны быть окончательными, но класс. – Henry
Да, я прочитал это, но мой вопрос в том, почему переменные экземпляра в этом классе должны быть окончательными? – Naz
Возможно, это о том, что: ** ** не обязательно быть окончательным, но это ** должно быть окончательным (чтобы однозначно понять, что он не будет изменен). – Marco13