Следующий пример класса не компилируется:
class Test {
final int x; // Compilation error: requires initialization.
}
Сообщение об ошибке компиляции для этого кода:
..\src\pkgs\main\Test.java:3: error: variable x might not have been initialized
class Test {
^
Однако Java не генерирует никаких сообщений об ошибках для класса, содержащего следующий метод:
class Test {
void method() {
final int x; // Compiles OK; has no initialization.
}
}
Что касается инициализации и ее требований, почему Java по-разному обрабатывает переменные конечного экземпляра и конечные локальные переменные? Спасибо.