On Fri, 27 Feb 2026 21:58:56 GMT, Justin Lu <[email protected]> wrote:

> Locale APIs which accept BCP 47 tags use hyphen for multiple variant subtags. 
> Locale APIs that accept multiple (non BCP 47 subtag) variants use 
> underscores. For example,
> 
> `Locale.of` supports multiple variants separated by underscore.
> `Locale.forLanguageTag` supports multiple variants separated by hyphen.
> `Locale.Builder.setLanguageTag` supports multiple variants separated by 
> hyphen.
> `Locale.Builder.setVariant` supports multiple variants separated by either 
> underscore or hyphen. 
> 
> The current wording is not detailed enough and implies both formats are 
> interchangeable within `Locale`. This PR updates the wording to make this 
> more apparent. Note that I left the constructor behavior out in the new 
> wording as to not call attention to it.

src/java.base/share/classes/java/util/Locale.java line 182:

> 180:  *   BCP 47 language tags expect as such. However, {@link 
> Locale.Builder#setVariant(String)}
> 181:  *   also supports underscore ('_') and {@link Locale#of(String, String, 
> String)}
> 182:  *   only supports underscore ('_').</dd>

I think this behavior is to accommodate the JDK's own variants prior to BCP47. 
So adding something like " for backward compatibility" would be helpful.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/29970#discussion_r2866530377

Reply via email to