Я не уверен, что это окончательное утверждение, но мне кажется, что Java API предпочитает постоянные ints над перечислениями. Из частей API, которые я использовал, я столкнулся с множеством констант final static int
, где вместо этого можно было использовать enum
. После такого примера, что я, случается, глядя на этот момент:Почему библиотеки Java используют константные int больше, чем перечисления?
От java.awt.BasicStroke:
public final static int CAP_BUTT = 0;
public final static int CAP_ROUND = 1;
public final static int CAP_SQUARE = 2;
На самом деле, я не думаю, что я когда-либо видел перечисление используется в стандартном классе Java API. Почему это?
Я разрабатываю API для своего приложения (примерно в миллиард раз меньше, чем Java API, но я все еще пытаюсь быть умным) и пытается решить, следует ли использовать постоянные int или перечисления. THIS публикации ссылки очень популярная книга, которую я еще не прочитал, что означает, что перечисления имеют много преимуществ. Большинство других высокоуровневых ответов в той же теме согласны. Итак, почему Java, похоже, не использует собственные возможности перечисления?
Одна догадка просто появилась в моем сознании сразу после публикации. Может быть, 'enum' был недоступен в Java давным-давно, когда все эти классы были разработаны? – The111
'BasicStroke' pre-dates' enum', который прибыл в Java 1.5. – Reimeus
Скорее всего, это код, который был написан до того, как язык перечислил. Поскольку это общедоступный API, он не может быть изменен. – James