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

mKo*_*bel 46 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

Buh*_*ndi 67

代码本身就是:

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

public final static Color RED = red;
Run Code Online (Sandbox Code Playgroud)

大写字母在JDK 1.4中引入(以符合它的命名规则,指出常数必须是大写).

实质上,没有任何区别(字母外壳除外).


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

  • 让我感到恼火的是,太久花了很长时间(1.4)让Sun承认小写的等价物与普通的Java常量不匹配. (9认同)

Jan*_*yka 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;
Run Code Online (Sandbox Code Playgroud)