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
答案 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;
希望这有帮助!