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;
希望这可以帮助!