Color.red和Color.RED的区别

setXxx(Color.red)setXxx(Color.RED)定义的真正区别是什么?

我在网上find了下面的解释。 这是关于命名约定吗?

Java最初用小写定义了几个颜色常量名,这违反了常量使用大写字母的命名规则。 它们适用于所有版本的Java:Color.black,Color.darkGray,Color.gray,Color.lightGray,Color.white,Color.magenta,Color.red,Color.pink,Color.orange,Color.yellow,Color .green,Color.cyan,Color.blue

Java 1.4为常量添加了合适的大写名称: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

有代码本身:

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

大写字母是在JDK 1.4中引入的(以符合其命名约定,指出常量必须是大写的)。

从根本上说,没有任何区别(信件shell除外)。


如果我真的想要勇敢的话,Oracle可能会疯狂并删除低一些的常量,但是那样会打破JDK 1.4之前编写的所有其他代码。 你永远不知道,我会build议坚持大写字母的常量。 它首先必须被废弃(正如Andrew Thompson所提到的)。

真的没有什么区别。 查看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以小写定义了一些颜色常量名,这违反了常量使用大写的命名规则。 下面是红色代码:

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

后来他们做了相同的颜色,但大写。

 public final static Color RED = red; 

所以没有什么区别。 他们都是一样的,你可以告诉代码。

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

希望这可以帮助!