Java ResourceBundle setParent() 方法



描述

Java ResourceBundle setParent(ResourceBundle parent) 方法设置此捆绑包的父捆绑包。当此捆绑包不包含特定资源时,getObject 会搜索父捆绑包。

声明

以下是 java.util.ResourceBundle.setParent() 方法的声明

protected void setParent(ResourceBundle parent)

参数

parent − 此捆绑包的父捆绑包。

返回值

此方法不返回值。

异常

在 US 本地化资源捆绑包中设置父捆绑包示例

以下示例演示了 Java ResourceBundle setParent() 方法的用法。在此示例中,我们扩展了 ResourceBundle 类并实现了 setParent() 方法,并设置了超级父级。

package com.tutorialspoint;

import java.util.Enumeration;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.StringTokenizer;

public class ResourceBundleDemo extends ResourceBundle {

   @Override
   public Object handleGetObject(String key) {
      if (key.equals("hello")) {
         return "Hello World!";
      } else {
         return null;
      }
   }

   @Override
   public Enumeration getKeys() {
      StringTokenizer key = new StringTokenizer("Hello World!");
      return key;
   }

   @Override
   protected void setParent(ResourceBundle parent) {
      super.setParent(parent);
   }

   public static void main(String[] args) {

      // create a new ResourceBundle with specified locale
      ResourceBundle bundle = ResourceBundle.getBundle("hello", Locale.US);

      // print the string array assigned to key "hello"
      System.out.println("" + bundle.getString("hello"));
   }
}

输出

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

hello = Hello World!

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

Hello World!

在法国本地化资源捆绑包中设置父捆绑包示例

以下示例演示了 Java ResourceBundle setParent() 方法的用法。在此示例中,我们扩展了 ResourceBundle 类并实现了 setParent() 方法,并设置了超级父级。

package com.tutorialspoint;

import java.util.Enumeration;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.StringTokenizer;

public class ResourceBundleDemo extends ResourceBundle {

   @Override
   public Object handleGetObject(String key) {
      if (key.equals("hello")) {
         return "Bonjour le monde!";
      } else {
         return null;
      }
   }

   @Override
   public Enumeration getKeys() {
      StringTokenizer key = new StringTokenizer("Bonjour le monde!");
      return key;
   }

   @Override
   protected void setParent(ResourceBundle parent) {
      super.setParent(parent);
   }

   public static void main(String[] args) {

      // create a new ResourceBundle with specified locale
      ResourceBundle bundle = ResourceBundle.getBundle("hello", Locale.FRANCE);

      // print the string array assigned to key "hello"
      System.out.println("" + bundle.getString("hello"));
   }
}

输出

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

hello = Bonjour le monde!

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

Bonjour le monde!

在德国本地化资源捆绑包中设置父捆绑包示例

以下示例演示了 Java ResourceBundle setParent() 方法的用法。在此示例中,我们扩展了 ResourceBundle 类并实现了 setParent() 方法,并设置了超级父级。

package com.tutorialspoint;

import java.util.Enumeration;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.StringTokenizer;

public class ResourceBundleDemo extends ResourceBundle {

   @Override
   public Object handleGetObject(String key) {
      if (key.equals("hello")) {
         return "Hallo Welt!";
      } else {
         return null;
      }
   }

   @Override
   public Enumeration getKeys() {
      StringTokenizer key = new StringTokenizer("Hallo Welt!");
      return key;
   }

   @Override
   protected void setParent(ResourceBundle parent) {
      super.setParent(parent);
   }

   public static void main(String[] args) {

      // create a new ResourceBundle with specified locale
      ResourceBundle bundle = ResourceBundle.getBundle("hello", Locale.GERMANY);

      // print the string array assigned to key "hello"
      System.out.println("" + bundle.getString("hello"));
   }
}

输出

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

hello = Hallo Welt!

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

Hallo Welt!
java_util_resourcebundle.htm
广告