Enum sarebbe un modo sbagliato per questo nell'API JDK che dovrebbe servire un'ampia varietà di applicazioni.
Sarebbe anche sbagliato nello sviluppo di applicazioni, a meno che l'applicazione non sia progettata per servire un sottoinsieme di linguaggi limitato e limitato - sottoinsieme noto al momento della compilazione - che, a sua volta, difficilmente si qualificherebbe come correlato a BCP-47 .
Questo perché l'attributo sostanziale di BCP-47 sta indirizzando un open-ended set dei valori:
Language tags are used to help identify languages, whether spoken, written, signed, or otherwise signaled, for the purpose of communication. This includes constructed and artificial languages but excludes languages not intended primarily for human communication, such as programming languages...
The ietf-languages list is an open list...
In alto, a sua volta, rende errato l'enum, che è destinato a servire fisso, serie limitate di valori :
You should use enum types any time you need to represent a fixed set of constants. That includes natural enum types such as the planets in our solar system and data sets where you know all possible values at compile time - for example, the choices on a menu, command line flags, and so on...