Для чего объявляют коллекцию final в методе java?

Который раз натыкаюсь на код на гитхабе вроде:

public List<Integer> meth(){
 final ArrayList <Integer> arl = new ArrayList()<>;
 ... //Какая-то реализация
      return arl;
}

Или так:

public map <Integer, Integer> meth(){
 final HashMap <Integer, Integer> hmp = new HashMap()<>;
 ... //Какая-то реализация
return hmp; 
}

Где-то в подсознании, у меня есть отдаленное понимание, что сие делается для многопоточного программирования. Но что это даст?

Вопрос: зачем ряд программистов на гитхабе создавая локальную коллекцию делают её final?


Ответы (1 шт):

Автор решения: Igor

Что значит "кто-то собирается там что-то переназначать"? Может и собирается, Вы же не знаете, что в голове у того, кто писал этот код. Программист, использующий final в объявлении переменных и параметров, уважает тех, кто будет читать его код, и стремится облегчить им жизнь. После такой декларации мы уверены, что значение переменной будет присвоено только один раз и не сможет измениться.

→ Ссылка