final int id = nextID ++;
final, як і звичайні локальні змінні, зобов'язані отримати значення до моменту їх першого використання.
застосування полів blank final виправдано і корисно в тих випадках, коли їх
Потужність змінюється в залежності аргументами конструктора, як в прикладі
final String name; // blank final
або якщо простого вираження ініціалізації мало зважаючи на складність завдання:
static final int [] numbers = numberList ();
static final int maxNumber; // максимальне з чисел
int max = numbers [0];
for (int i = 0; i if (numbers [i]> max) Компілятор перевіряє, ініційовані чи все поля statiс final після закінчення виконання коду статичних блоків ініціалізації, а нестатичні поля final по завершенні процесу конструювання об'єкта. Якщо будь-яка із зазначених умов не виконується, компілятор видає повідомлення Локальні змінні blank final використовуються, наприклад, в тих ситуаціях, коли значення, що підлягають привласненню, будь-яким чином залежать від значень інших змінних. Як і при роботі з звичайними локальними змінними, компілятор перевіряє, чи виконана ініціалізація змінної blank final до моменту її першого використання. Локальні змінні і параметри зазвичай оголошуються як final тільки в тих випадках, коли вони допускають звернення з коду локального або анонімного внутрішніх класів, хоча деякі програмісти завжди позначають параметри методів ознакою final, на переконання або за звичкою.Схожі статті