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
Java1.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
发布于 2011-09-02 08:55:24
这就是代码本身:
public final static Color red = new Color(255, 0, 0);
public final static Color RED = red;大写字母是在JDK1.4中引入的(为了符合其命名惯例,说明常量必须是大写的)。
本质上,根本没有区别(除了字母大写)。
如果我真的想勇敢一点,Oracle可能会疯狂地删除大小写较低的常量,但这会破坏所有其他编写的JDK1.4之前编写的代码。你永远也不知道,我建议用大写字母作为常量。不过,首先必须反对(正如安德鲁·汤普森所提到的)。
发布于 2011-09-02 08:55:26
真的没什么区别。请参阅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;发布于 2016-08-16 19:31:44
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;希望这能有所帮助!
https://stackoverflow.com/questions/7281180
复制相似问题