返回 locale
的 list
,作为 basename
和 locale
的候选语言环境。在工厂方法每次尝试为目标 locale
查找资源包时,由 resourcebundle.getbundle
工厂方法调用此方法。
如果存在对应于候选语言环境的资源包,并且它们的父包不是由已加载资源包本身定义的,那么候选语言环境序列还将对应于运行时资源查找路径(也称为父链)。如果需要让基本包作为父链的终端,那么列表的最后一个元素必须是根语言环境。
如果给定语言环境等于 locale.root
(根语言环境),则必须返回一个只包含根 locale
的 list
。在这种情况下,resourcebundle.getbundle
工厂方法只将基本包作为所得资源包加载。
不必返回一个不可变的(不可修改的) list
。但是,返回的 list
在由 getcandidatelocales
返回之后不得改变。
默认实现按照以下次序返回包含 locale
的 list
:
locale(language, country, variant)
locale(language, country)
locale(language)
locale.root
其中 language
、country
和 variant
分别指语言、国家/地区和给定 locale
的变量值。省略最后部分的值为空字符串的语言环境。
默认实现使用 arraylist
,重写实现可以在将它返回给调用者之前对它进行修改。但是,子类在它被 getcandidatelocales
返回之后不得修改它。
例如,如果给定 basename
为 "messages",给定 locale
为 locale("ja", "", "xx")
,则返回 locale
的 list
为:
locale("ja", "", "xx")
locale("ja")
locale.root
而且,如果找到了 "ja" 和 "" locale
的资源包,则运行时资源查找路径(父链)为:
messages_ja -> messages
- 参数:
basename
- 资源包的基本名称,是一个完全限定类名locale
- 资源包需要的语言环境
- 返回:
- 为给定
locale
的候选 locale
list
- 抛出:
nullpointerexception
- 如果 basename
或 locale
为 null