Нужно ли указывать модификатор «final» для ВСЕХ неизменяемых переменных в Java? - PullRequest
1 голос
/ 11 января 2020

В одной Java книге, которую я прочитал «В общем, хорошая идея всегда объявлять переменные как конечные, а константные поля как stati c final, если их не нужно переназначать« . Я начал следовать этому совету. Но когда я начал кодировать, я обнаружил, что почти все мои переменные являются неизменяемыми. Но использование ключевого слова «final» делает строки длиннее, и в результате сложнее читать код, что противоречит принципам чистого кода. Итак, вот мои вопросы:

  1. Является ли хорошей практикой делать все неизменяемые переменные «окончательными»?
  2. Используете ли вы модификатор «финал» для всех ваших неизменяемых переменных в своих программах? ?
  3. Если нет, когда вы используете «final» и когда пропускаете использование этого ключевого слова?

Вот пример моей программы из репозитория Code Coach . Все переменные являются окончательными. Такая же ситуация почти во всех других программах в хранилище.

import java.util.Scanner;

public class NoNumerals
{
    public static void main(String[] args) {
        final var input = new Scanner(System.in);
        final var phrase = input.nextLine();
        final String[] numbers = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};
        final var updatedPhrase = new StringBuilder();

        for (final var word : phrase.split(" ")) {
            try {
                final int number = Integer.parseInt(word);
                if (number >= 0 && number <= 10) {
                    updatedPhrase.append(numbers[number]);
                } else {
                    updatedPhrase.append(word);
                }
            } catch (NumberFormatException nfe) {
                updatedPhrase.append(word);
            }
            updatedPhrase.append(" ");
        }
        System.out.print(updatedPhrase);
    }
}
...