Действует ли переменная static final
как глобальная переменная в контексте своего класса?
Да, все члены класса static
доступны по всему коду класса (final
или иным образом), и им не нужно ставить префикс имени класса.Включать это или нет - предпочтение стиля.
Менее очевидно, что в методе экземпляра вы можете использовать this.MY_STATIC_VARIABLE
, и компилятор будет очень доволен, даже если MY_STATIC_VARIABLE
не является полем экземпляра,(С открытыми статическими полями вы можете сделать это с любой ссылкой на экземпляр, а не только с this
.) Вы можете сделать то же самое с методами static
.Но это ужасно вводит в заблуждение любого, кто читает код.:-) С технической точки зрения, это стиль, но я настоятельно рекомендую против этого.Просто упомяните об этом на случай, если вы в конечном итоге прочитаете код, который выглядит так, будто в нем есть ошибка.