Java ResourceBundle.Control getFallbackLocale() 方法



描述

java ResourceBundle.Control getFallbackLocale(String baseName, Locale locale) 方法返回一个 Locale,作为 ResourceBundle.getBundle 工厂方法进一步资源包搜索的回退区域设置。每次当没有为 baseName 和 locale 找到任何结果资源包时,此方法都会从工厂方法中调用,其中 locale 或者是 ResourceBundle.getBundle 的参数,或者是此方法返回的先前回退区域设置。

声明

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

public Locale getFallbackLocale(String baseName, Locale locale)

参数

  • baseName − 资源包的基本名称,一个完全限定的类名,ResourceBundle.getBundle 无法为此类名找到任何资源包(基本包除外)

  • locale − ResourceBundle.getBundle 无法找到任何资源包的 Locale(基本包除外)

返回值

此方法返回用于回退搜索的 Locale,如果不需要进一步的回退搜索,则返回null

异常

NullPointerException − 如果 baseName 或 locale 为null

从 US Locale 的 ResourceBundle Control 获取回退 Locale 的示例

以下示例演示了如何使用 Java ResourceBundle.Control getFallbackLocale() 方法获取回退区域设置。我们使用 getControl() 方法创建了一个使用 FORMAT_DEFAULT 的资源包控制。然后,使用 getFallbackLocale() 方法打印相应 hello_en_US.properties 文件的 US Locale 的回退区域设置。

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.getFallbackLocale("hello", Locale.US));
   }
}

输出

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

hello = Hello World!

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

en_IN

从 France Locale 的 ResourceBundle Control 获取回退 Locale 的示例

以下示例演示了如何使用 Java ResourceBundle.Control getFallbackLocale() 方法获取回退区域设置。我们使用 getControl() 方法创建了一个使用 FORMAT_DEFAULT 的资源包控制。然后,使用 getFallbackLocale() 方法打印相应 hello_fr_FR.properties 文件的 French Locale 的回退区域设置。

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.getFallbackLocale("hello", Locale.FRANCE));
   }
}

输出

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

hello = Bonjour le monde!

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

en_IN

从 German Locale 的 ResourceBundle Control 获取回退 Locale 的示例

以下示例演示了如何使用 Java ResourceBundle.Control getControl() 方法获取回退区域设置。我们使用 getControl() 方法创建了一个使用 FORMAT_DEFAULT 的资源包控制。然后,使用 getFallbackLocale() 方法打印相应 hello_de_DE.properties 文件的 German Locale 的回退区域设置。

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.getFallbackLocale("hello", Locale.GERMANY));
   }
}

输出

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

hello = Hallo Welt!

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

en_IN
java_util_resourcebundle_control.htm
广告