<i18n dev> RFR: 8357281: sun.util.Locale.LanguageTag should be immutable
    Naoto Sato 
    naoto at openjdk.org
       
    Thu May 22 01:18:54 UTC 2025
    
    
  
On Wed, 21 May 2025 21:19:36 GMT, Justin Lu <jlu at openjdk.org> wrote:
> _sun.util.Locale.LanguageTag_ is essentially a BCP47 language tag data carrier for Locale. The class, once created is not modified; the class should be made immutable. Converting the class to a record accomplishes this and also simplifies some of the existing code.
Nice refactoring. Couple of nits follow
src/java.base/share/classes/sun/util/locale/LanguageTag.java line 53:
> 51:     public static final String PRIVUSE_VARIANT_PREFIX = "lvariant";
> 52:     private static final String EMPTY_TAG = "";
> 53:     private static final List<String> EMPTY_TAGS = Collections.emptyList();
It would be clearer to rename "TAG(S)" to "SUBTAG(S)"
src/java.base/share/classes/sun/util/locale/LanguageTag.java line 191:
> 189:         String region = EMPTY_TAG;
> 190:         List<String> variants = EMPTY_TAGS;
> 191:         List<String> extensions = EMPTY_TAGS;
These assignments can be moved for the case of `language.isEmpty()`
-------------
PR Review: https://git.openjdk.org/jdk/pull/25371#pullrequestreview-2859485182
PR Review Comment: https://git.openjdk.org/jdk/pull/25371#discussion_r2101431166
PR Review Comment: https://git.openjdk.org/jdk/pull/25371#discussion_r2101426074
    
    
More information about the i18n-dev
mailing list