3

为什么 Java 的每种预设颜色都有两个 java.awt.Color 值?它有一个第一个字母大写,另一个全大写。我做了一个测试类,打印出颜色的两个值,看看它们是否不同。

import java.awt.Color;
public class test{
   public static void main(String[] args){
       System.out.println("white is: "+Color.white+" and WHITE is: "+Color.WHITE);
   }
}

这打印出相同的结果。那么为什么java会有两个完全相同的值呢?

4

4 回答 4

9

小写常量与大写常量同义。记录一下,小写字母是错误的——编码约定要求常量名称必须全部大写,这从 Java 1.4 版本开始就已修复;奇怪的是,它们一直没有被标记为已弃用。我想它们只是出于向后兼容性的原因而保留在那里。

于 2013-03-06T21:54:42.543 回答
1

与旧版本的兼容性;大写字母是在 JDK 1.4 中引入的。

于 2013-03-06T21:54:04.920 回答
1

white
public static final Color white 白色
的颜色。在默认的 sRGB 空间中。

WHITE
public static final Color WHITE
颜色白色。在默认的 sRGB 空间中。
自:1.4

所以唯一的区别是 WHITE 是在 1.4 版本的 jdk 中引入的, 白色的存在只是为了支持旧系统兼容性
http://docs.oracle.com/javase/6/docs/api/java/awt/Color.html#白色的

于 2013-03-06T21:56:13.557 回答
0
Color.white.equals(Color.WHITE);

是真的。

于 2013-03-06T21:57:21.750 回答