последний регистр переменной в операторе switch

        final int a = 1;
        final int b;
        b = 2;
        final int x = 0;

        switch (x) {
            case a:break;     // ok
            case b:break;     // compiler error: Constant expression required

        }
        /* COMPILER RESULT:
                constant expression required
                case b:break;
                     ^
                1 error
        */

Почему я получаю такую ошибку? Если бы я сделалfinal int b = 2, все работает.

Ответы на вопрос(3)

Ваш ответ на вопрос