Color.red和Color.RED之间的区别

时间:2011-09-02 08:53:21

标签: java colors

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

我在网上找到了以下解释。是关于命名约定的吗?

  

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

3 个答案:

答案 0 :(得分:66)

代码本身:

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

public final static Color RED = red;

在JDK 1.4中引入了大写字母(符合其命名约定,声明常量必须为大写)。

本质上,根本没有区别(字母大小除外)。


如果我真的想要勇敢,那么Oracle可能会疯狂并删除较低容量的常量,但这会破坏JDK 1.4之前编写的所有其他代码。你永远不知道,我建议坚持使用大写字母表示常量。首先必须弃用(如Andrew Thompson所述)。

答案 1 :(得分:21)

真的没什么区别。请参阅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;

答案 2 :(得分:1)

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;

希望这有帮助!