Java ResourceBundle.Control 的 getCandidateLocales() 方法



描述

Java ResourceBundle.Control 的 getCandidateLocales(String baseName, Locale locale) 方法返回一个 Locale 列表,作为 baseName 和 locale 的候选区域设置。每次工厂方法尝试为目标区域设置查找资源包时,ResourceBundle.getBundle 工厂方法都会调用此方法。

声明

以下是java.util.Control.getCandidateLocales() 方法的声明

public List<Locale< getCandidateLocales(String baseName, Locale locale)

参数

  • baseName − 资源包的基本名称,一个完全限定的类名

  • locale − 所需资源包的区域设置

返回值

此方法返回给定区域设置的候选 Locale 列表

异常

NullPointerException − 如果 baseName 或 locale 为空

从美国区域设置的 ResourceBundle Control 获取 Locale 列表示例

以下示例演示了如何使用 Java ResourceBundle.Control 的 getCandidateLocales() 方法来获取美国区域设置的区域设置列表。我们创建了一个具有 FORMAT_DEFAULT 的资源包控制。然后,使用 getCandidateLocales() 方法打印对应于 hello_en_US.properties 文件的美国区域设置的候选区域设置。

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);

      // print the CandidateLocales
      System.out.println(rbc.getCandidateLocales("hello", Locale.US));
   }
}

输出

假设在你的 CLASSPATH 中有一个名为hello_en_US.properties 的资源文件,其内容如下。此文件将用作示例程序的输入:

hello = Hello World!

让我们编译并运行上面的程序,这将产生以下结果:

[en_US, en, ]

从法国区域设置的 ResourceBundle Control 获取 Locale 列表示例

以下示例演示了如何使用 Java ResourceBundle.Control 的 getCandidateLocales() 方法来获取法国区域设置的区域设置列表。我们创建了一个具有 FORMAT_DEFAULT 的资源包控制。然后,使用 getCandidateLocales() 方法打印对应于 hello_fr_FR.properties 文件的法国区域设置的候选区域设置。

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);

      // print the CandidateLocales
      System.out.println(rbc.getCandidateLocales("hello", Locale.FRANCE));
   }
}

输出

假设在你的 CLASSPATH 中有一个名为hello_fr_FR.properties 的资源文件,其内容如下。

hello = Bonjour le monde!

让我们编译并运行上面的程序,这将产生以下结果:

[fr_FR, fr, ]

从德国区域设置的 ResourceBundle Control 获取 Locale 列表示例

以下示例演示了如何使用 Java ResourceBundle.Control 的 getCandidateLocales() 方法来获取德国区域设置的区域设置列表。我们创建了一个具有 FORMAT_DEFAULT 的资源包控制。然后,使用 getCandidateLocales() 方法打印对应于 hello_de_DE.properties 文件的德国区域设置的候选区域设置。

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);

      // print the CandidateLocales
      System.out.println(rbc.getCandidateLocales("hello", Locale.GERMANY));
   }
}

输出

假设在你的 CLASSPATH 中有一个名为hello_de_DE.properties 的资源文件,其内容如下。

hello = Hallo Welt!

让我们编译并运行上面的程序,这将产生以下结果:

[de_DE, de, ]
java_util_resourcebundle_control.htm
广告