This question о том, почему константы в Java в верхнем регистре по соглашению заставляют меня думать о примерах счетчиков.Константы с прописными буквами в Java
Я могу придумать хотя бы один (Double.NaN
). Есть ли другие?
This question о том, почему константы в Java в верхнем регистре по соглашению заставляют меня думать о примерах счетчиков.Константы с прописными буквами в Java
Я могу придумать хотя бы один (Double.NaN
). Есть ли другие?
Есть много serialVersionUID
!
Другие в ResultSetMetaData
как columnNoNulls
, columnNullable
...
DatabaseMetaData
и ICC_Profile
есть много смешанных констант случая.
Вот список с большинством, если не все, JavaSE константы: Constant Field Values
Ссылка на все константы делает это победителем! – JRL
null
, true
и false
. Они, возможно, являются ключевыми словами, но когда вы переходите к нему, они являются константами, оценивающими 0x00, 0x01 и 0x00 соответственно.
В C++ возможно, но, конечно, не в java. Нет '(int) null' или' (int) true' – Martin
Также: это литералы, а не ключевые слова. Так же, как '13' является буквальным или' 'foo". –
Вы, вероятно, путаетесь с Boolean.TRUE и Boolean.FALSE, которые являются константами, но в верхнем регистре. – Roman
Цветные константы, такие как черный, красный, зеленый и т. Д. От java.awt.Color класс.
Следует отметить, что java.awt.Color также содержит альтернативы верхнего регистра (например, BLACK, RED, GREEN и т. Д.) Этих констант.
java.util.logging.Logger.global является константой со всеми строчной
Конечно, public final static PrintStream out
(в java.lang.System.out
). Но это очень хорошее исключение, потому что System.OUT.println
просто уродливый.
Кроме того, большую часть времени регистраторы инициализируются следующим образом:
private static final Logger logger = Logger.getLogger(MyClass.class);
Однако в обоих случаях они не являются константами в истинном смысле этого слова. Так что, возможно, мы можем сделать различие:
Поля, static
потому что они нуждаются в статический доступ, и final
, потому что они не должны быть повторно назначены во время выполнения, не обязательно константы.
Согласен; Я считаю, что константы всегда являются объектами ценности (конечно же, неизменяемыми). –
Согласен. Верхний регистр должен быть зарезервирован для неизменяемых констант *, а не просто для 'static' и' final'. – cdunn2001
length
экземпляров массива.
Кстати, я вижу примеры, которые упоминаются об объектах, которые являются «постоянными» в одном отношении, а именно их ссылка не изменяется - ссылка является окончательной статикой, но когда эти объекты активны; то есть их внутренние атрибуты изменяются при вызове методов на этих объектах. В таких случаях я бы не использовал соглашение об именах UPPERCASE, поскольку объекты не являются константами в моем представлении.
Не должно ли это быть вики-сообществом? – Yuval
Это интересно или полезно? Как это помогает вам или кому-то выполнять свою работу? –