Почему я могу переназначить новое значение конечной переменной в Android AIDE? - PullRequest
0 голосов
/ 16 сентября 2018

Как это возможно?Как я могу изменить переменные, помеченные как окончательные?

public class Main
{
    public static void main(String[] args)
    {
        final int NUM;

        NUM = 22;
        NUM = 33;

        System.out.println(NUM);
    }

}

Я использовал приложение AIDE в Android ... оно успешно скомпилировано и напечатано 33.

1 Ответ

0 голосов
/ 16 сентября 2018

Если вы можете сделать это, это ошибка в приложении AIDE.Вы должны сообщить об этом разработчикам.JLS-совместимая реализация Java не позволяет переназначать final переменных (например, вот так).

Если вы хотите дать им ссылку на спецификацию JLS для поддержки вашего сообщения об ошибке:

JLS 4.12.4 final переменные

Переменная может быть объявлена ​​окончательной.Окончательная переменная может быть назначена только один раз.Это ошибка времени компиляции, если конечная переменная назначена, если только она не была точно назначена непосредственно перед назначением ( §16 (Определенное назначение) ).

...