为什么Java每种颜色都有两个颜色值?

时间:2013-03-06 21:53:14

标签: java

为什么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 个答案:

答案 0 :(得分:8)

小写常量是大写的同义词。而对于记录,小写的是蠢事 - 编码约定要求常量应该具有全大写的名称,这是从Java 1.4版本开始修复的;奇怪的是,他们在所有这段时间之后都没有被标记为弃用。我猜他们只是出于向后兼容的原因而留在那里。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

Color.white.equals(Color.WHITE);

是真的。