Diferença entre Color.red e Color.RED

Qual é a diferença real entre as definições de setXxx(Color.red) e setXxx(Color.RED) ?

Eu encontrei a seguinte explicação na web. É tudo sobre convenções de nomenclatura?

Java originalmente definiu alguns nomes constantes de colors em letras minúsculas, o que violava a regra de nomenclatura de usar letras maiúsculas para constantes. Eles estão disponíveis em todas as versões do Java: Color.black, Color.darkGray, Color.gray, Color.lightGray, Color.white, Color.magenta, Color.red, Color.pink, Color.orange, Color.yellow, Color Verde, Color.cyan, Color.blue

O Java 1.4 adicionou os nomes de letras maiúsculas adequadas para constantes: Color.BLACK, Color.DARK_GRAY, Color.GRAY, Color.LIGHT_GRAY, Color.WHITE, Color.MAGENTA, Color.RED, Color.PINK, Color.ORANGE, Color.YELLOW, Color.GREEN, Color.CYAN, Color.BLUE

Existe o código em si:

 public final static Color red = new Color(255, 0, 0); public final static Color RED = red; 

As letras maiúsculas foram introduzidas no JDK 1.4 (para estar de acordo com sua convenção de nomes, declarando que as constantes devem estar em maiúsculas).

Em essência, não há diferença alguma (exceto letras maiúsculas).


Se eu quiser realmente ser corajoso, o Oracle pode ficar louco e remover constantes com menos letras, mas isso quebraria todos os outros códigos escritos antes do JDK 1.4. Você nunca sabe, eu sugiro ficar com letras maiúsculas para constantes. Primeiro tem que ser depreciado embora (como mencionado por Andrew Thompson).

Não há realmente nenhuma diferença. Veja a class Color :

 /** * The color red. In the default sRGB space. */ public final static Color red = new Color(255, 0, 0); /** * The color red. In the default sRGB space. * @since 1.4 */ public final static Color RED = red; 

Java definiu alguns nomes de constantes de cor em letras minúsculas, o que violava a regra de nomenclatura de usar letras maiúsculas para constantes. Heres o código para a cor vermelha:

 public final static Color red = new Color(255, 0, 0); 

Mais tarde, eles fizeram as mesmas colors, mas em maiúsculas.

 public final static Color RED = red; 

Então realmente não há diferença. Eles são todos iguais, como você pode dizer pelo código.

 public final static Color red = new Color(255, 0, 0); public final static Color RED = red; 

Espero que isto ajude!