Не прописные константы в Java - PullRequest
       24

Не прописные константы в Java

5 голосов
/ 19 февраля 2010

Этот вопрос о том, почему константы в Java прописными буквами по соглашению заставили меня попытаться придумать контрпримеры.

Я могу вспомнить хотя бы один (Double.NaN).Есть ли другие?

Ответы [ 6 ]

7 голосов
/ 19 февраля 2010

Конечно, public final static PrintStream outjava.lang.System.out). Но это очень хорошее исключение, потому что System.OUT.println просто безобразно.

Кроме того, большинство регистраторов времени инициализируются следующим образом:

private static final Logger logger = Logger.getLogger(MyClass.class);

Однако в обоих случаях они не являются константами в истинном смысле этого слова. Так что, возможно, мы можем сделать различие:

Поля, которые static потому что им нужен статический доступ, и final, потому что они не должны быть переназначены во время выполнения, не обязательно константы .

4 голосов
/ 19 февраля 2010

Есть много serialVersionUID!

Другие в ResultSetMetaData как columnNoNulls, columnNullable ...
DatabaseMetaData и ICC_Profile имеют много констант смешанного регистра.

Вот список с большинством, если не всеми, константами JavaSE: Значения константных полей

2 голосов
/ 19 февраля 2010

java.util.logging.Logger.global - константа со всеми строчными

2 голосов
/ 19 февраля 2010

Цветовые константы, такие как черный, красный, зеленый и т. Д. Из java.awt. Цвет класс.

Следует отметить, что java.awt.Color также предоставляет заглавные варианты (например, ЧЕРНЫЙ, КРАСНЫЙ, ЗЕЛЕНЫЙ и т. Д.) Этих констант.

0 голосов
/ 19 февраля 2010

length экземпляров массива.

Кстати, я вижу примеры упомянутых объектов, которые являются «постоянными» в одном отношении, а именно, их ссылка не изменяется - ссылка является окончательной статической, но когда эти объекты активны; то есть их внутренние атрибуты меняются при вызове методов для этих объектов. В этих случаях я бы не использовал соглашение об именах UPPERCASE, так как объекты, на мой взгляд, не являются константами.

0 голосов
/ 19 февраля 2010

null, true и false.Это, возможно, ключевые слова, но когда вы приступите к этому, они будут константами, оцениваемыми в 0x00, 0x01 и 0x00 соответственно.

...