2010-02-19 19 views
5

This question acerca de por qué las constantes en Java son mayúsculas por convención me hizo pensar en ejemplos de contador.Constantes no mayúsculas en Java

Puedo pensar en al menos uno (Double.NaN). ¿Hay otros?

+2

¿No debería ser esto una Wiki de la comunidad? – Yuval

+1

¿Esto es interesante o útil? ¿Cómo te ayuda a ti o a alguien a hacer tu trabajo? –

Respuesta

4

¡Hay muchos serialVersionUID!

Otros en ResultSetMetaData como columnNoNulls, columnNullable ...
DatabaseMetaData y ICC_Profile tienen un montón de constantes casos mixtos.

Aquí es una lista con la mayoría, si no todos, JavaSE constantes: Constant Field Values

+0

¡El enlace a todas las constantes lo convierte en un ganador! – JRL

0

null, true y false. Se puede decir que son palabras clave, pero cuando se llega a eso, son constantes que evalúan a 0x00, 0x01 y 0x00 respectivamente.

+5

En C++ quizás, pero ciertamente no en Java. No hay '(int) null' o' (int) true' – Martin

+1

Además: son literales, no palabras clave. Así como '13' es un literal o' "foo" '. –

+0

Probablemente se confunda con Boolean.TRUE y Boolean.FALSE, que son constantes pero en mayúsculas. – Roman

2

Constantes de color como negro, rojo, verde, etc. de java.awt.Color clase.

Cabe señalar que java.awt.Color también proporciona las alternativas en mayúsculas (por ejemplo, NEGRO, ROJO, VERDE, etc.) de estas constantes.

2

java.util.logging.Logger.global es una constante con minúsculas

7

Por supuesto, public final static PrintStream out (en java.lang.System.out). Pero es una muy buena excepción, porque System.OUT.println es feo.

Además, la mayoría de los registradores de tiempo se inicializan como sigue:

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

Sin embargo, en ambos casos estos no son constantes en el verdadero sentido de la palabra. Así que tal vez podemos hacer una distinción:

Los campos que son static, ya que necesitan un acceso estático, y final porque no deben ser reasignados en tiempo de ejecución, no son necesariamente constantes de .

+3

Estoy de acuerdo; Creo que las constantes son siempre objetos de valor (inmutables, por supuesto). –

+0

Estoy de acuerdo. La mayúscula debe reservarse para constantes * inmutables *, no simplemente cualquier cosa 'estática' y' final'. – cdunn2001

0

El length de instancias de matriz.

Por cierto, veo ejemplos mencionados de objetos que son "constantes" en un aspecto, es decir, su referencia no cambia: la referencia es una estática final, pero cuando esos objetos están activos; es decir, sus atributos internos cambian cuando se llaman los métodos en estos objetos. En esos casos, no utilizaría la convención de nomenclatura UPPERCASE ya que los objetos no son constantes en mi opinión.

Cuestiones relacionadas