Нет, любые таблицы стилей, помещенные в документ, будут применяться ко всему документу. Почему вы хотите это сделать?
Сбор статистики может использовать неконечные переменные, например, для подсчета количества созданных экземпляров. С другой стороны, для такого рода ситуаций вы, возможно, захотите использовать AtomicLong
и т. Д., В любом случае, в этот момент он может быть окончательным. В качестве альтернативы, если вы собираете более одного показателя, вы можете получить класс Statistics
и окончательную ссылку на его экземпляр.
Конечно, довольно редко (оправданно) не финальный статические переменные.
При использовании в качестве кэша логирование, статистика или переключатель отладки являются очевидным разумным применением. Конечно, все закрытое.
Если у вас есть изменяемый объект, назначенный конечному полю, это морально совпадает с изменяемым полем.
Некоторые языки, такие как Fan, полностью запрещают изменяемую статику (или эквивалентную ей).
По моему опыту статические неконечные переменные должны использоваться только для одноэлементных экземпляров. Все остальное может быть либо более аккуратно заключено в одиночный тег (например, кеш), либо сделано окончательно (например, ссылка на регистратор). Однако я не верю в жесткие и быстрые правила, поэтому я бы посоветовался с солью. Тем не менее, я бы посоветовал тщательно изучить любой случай, когда вы рассматриваете возможность объявления неконечной статической переменной отдельно от экземпляра-одиночки, и посмотрите, может ли она быть реорганизована или реализована иначе - т. Е. Перемещена в одноэлементный контейнер или использовать окончательную ссылку на изменяемую переменную. объект.
Я думаю, что обертывание вашей статики и предоставление доступа через синглтоны (или, как минимум, через статические методы), как правило, хорошая идея , так как вы можете лучше контролировать доступ и избежать некоторых проблем гонки и проблем с синхронизацией.
Статическая переменная означает, что она доступна для класса в целом, поэтому оба примера доступны для класса в целом. Окончательный означает, что значение не может быть изменено. Итак, я предполагаю, что вопрос в том, когда вы хотите, чтобы значение было доступно для всего класса, и его нельзя изменить после того, как он был создан. Я предполагаю, что константа будет доступна для всех экземпляров этого класса. В противном случае, если вам нужно что-то вроде счетчика населения, тогда не конечная переменная.