Почему JavaFX содержит повторяющиеся цветовые константы? - PullRequest
0 голосов
/ 05 октября 2018

Просматривая документацию API для JavaFX 11 , я обнаружил, что она содержит повторяющиеся цветовые константы.Например:

  • DARKGRAY - темно-серый цвет со значением RGB #A9A9A9
  • DARKGREY - темно-серый цветсо значением RGB #A9A9A9

и

  • СЕРЫЙ - Серый цвет со значением RGB #808080
  • СЕРЫЙ - Серый цвет со значением RGB #808080

Как вы можете видеть, единственная разница заключается в написании имен полей, но не RGBценности.Вы знаете, почему существуют такие дубликаты?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Я думаю, причина в том, что CSS / HTML делает то же самое, что и https://www.w3schools.com/colors/colors_names.asp, так что это общеизвестно, и для CSS-движка он может просто сделать имя из JavaFX-CSS константой.

0 голосов
/ 05 октября 2018

Знаете ли вы, почему существуют такие дубликаты?

Потому что в английском языке есть альтернативные варианты написания слова "серый".

Это просто удобство для программистов.

(Есть прецеденты для этого в CSS/ HTML, а до этого в X11. И вполне может быть, что разработчики API JavaFx заимствовали эту идею из тех или иных мест. Однако основная мотивация та же: удобство для программиста.)


Дополнительный вопрос:

Как насчет самого класса Color? Цвет или Цвет ?

К сожалению, это не сработает.В Java следующее определяет два различных класса:

  public class Color {
     // fields, methods
  }

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

Эти классы НЕ совместимы по присваиванию, и метод, который принял параметр Color, не будет принимать параметр Colour, и наоборот.(Вы можете объявить один как подкласс другого, но вы все равно получите асимметрию типов, что сделает один из классов неприемлемым на практике.)

В Java нет способа реализовать типпсевдонимы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...