Финал для меня означает, что переменной можно присвоить только значение
один раз. Но поскольку декларация является частью подписи
метод, я не знаю, что это значит в этом контексте.
Это означает то же самое, вы не можете переназначить переменную.
// this compiles
public void foo(String bar){
bar = "xyz";
}
// this doesn't
public void foo(final String bar){
bar = "xyz";
}
Я всегда предполагал, что конечным переменным были присвоены значения, когда
класс был создан, но здесь он назначается при вызове метода.
Нет, локальные переменные также могут быть конечными, и параметры тоже. Они назначаются один раз для области (уровень блока или метода).
Должна ли переменная, переданная методу, также быть
объявлен финальным и назначен в конструкторе класса для этого
работа
Нет, это совершенно не имеет значения
Могу ли я вызвать метод более одного раза с разными значениями для пакета
или потому что переменная объявлена как финальная, означает ли это, что если я
хочу вызвать метод с разными значениями, мне нужно восстановить
класс для каждого нового значения пакета переменной?
Нет, см. Выше. Это новая переменная для каждого вызова метода.