0

The class java.util.Locale is declared as final, which means that nothing can extend it.

The ICU4J project have written an extension of this class - com.ibm.icu.util.ULocale (which is also final), but because of this it can't inherit or be used easily instead of Locale.

What would the reason for this be?

4

1 回答 1

1

扩展语言环境不是在不修改底层系统的情况下可以轻松完成的,因为深度集成到语言环境所具有的那些系统中。

如果您可以扩展Locale以添加一些额外的属性,那么当前接受 a 的类都不Locale知道如何处理它们。

假设您有一个简单Locale支持的 JDK,并且您可以传入一个ULocale具有更深入支持的 JDK(例如指定要使用的日历和数字,而不是底层语言环境的默认值),那么您就无法期望接受传统 JDKLocale以支持这些功能的代码。

于 2018-10-19T14:46:08.223 回答