为什么JavaFX包含重复的颜色常量?

时间:2018-10-05 12:53:12

标签: java javafx

查看JavaFX 11的API文档,我发现它包含重复的颜色常量。例如:

  • GRAY-灰色,其RGB值为#808080
  • GREY-灰色,其RGB值为#808080

如您所见,唯一的区别在于字段名称的拼写,而不是RGB值。你知道为什么会有这样的重复吗?

2 个答案:

答案 0 :(得分:4)

  

你知道为什么会有这样的重复吗?

因为英语中“灰色”一词有其他拼写。

这对程序员来说只是一个方便。

(在CSS / HTML中以及在X11之前都有这样做的先例。这很可能是JavaFx API设计者从这些地方或其他地方借来的。但是,主要动机是 是一样的:程序员很方便。)


第二个问题:

  

Color类本身如何? Colour or Color

不幸的是,它不起作用。在Java中,以下定义了两个不同的类:

  public class Color {
     // fields, methods
  }

  public class Colour {
     // equivalent fields, methods to above.
  }

这些类与赋值不兼容,采用Color参数的方法将不接受Colour参数,反之亦然。 (您可以将一个声明为另一个的子类,但最终仍然会出现类型不对称的情况,这实际上会使其中一个类不建议使用。)

Java没有实现类型别名的方法。

答案 1 :(得分:0)

我认为原因是CSS / HTML的用法与https://www.w3schools.com/colors/colors_names.asp相同,因此这是常识,对于CSS引擎,它只需将JavaFX-CSS的名称改成常量即可。