返回 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