Конечные аргументы метода против повторного объявления аргументов в качестве финальных переменных в методе - PullRequest
0 голосов
/ 24 октября 2018

Я нашел метод, подобный следующему:

private void methodA(String firstArg, String secondArg) {
    final String queueFirstArg = firstArg;
    final String queueSecondArg = secondArg;
    executor.execute(new Runnable() {
        public void run() {
           methodB(queueFirstArg, queueSecondArg);
        }
    }
}

Это похоже на плохой код, и было бы достаточно сделать оба аргумента 'final'.Я что-то пропустил?Есть ли польза от использования этого подхода?

1 Ответ

0 голосов
/ 24 октября 2018

Да, это «плохой код» из-за избыточных локальных переменных, потому что вы можете добавить final к аргументам, не боясь изменить поведение вызывающей стороны, см. answer :

Java всегда делает копию параметров перед отправкой их в методы.Это означает, что финал не означает никакой разницы для вызывающего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...