Java ResourceBundle.Control 类



介绍

Java ResourceBundle.Control 类与用于加载资源包的工厂方法协作。以下是关于 ResourceBundle.Control 的重要几点:

  • 如果多个线程同时使用该类实例,则该实例必须是线程安全的。

类声明

以下是java.util.ResourceBundle.Control类的声明:

public static class ResourceBundle.Control
   extends Object

字段

以下是java.util.ResourceBundle.Control类的字段:

  • static List<String> FORMAT_CLASS − 此格式列表包含“java.class”。

  • static List<String> FORMAT_DEFAULT − 这是默认格式列表,包含字符串“java.class”和“java.properties”,按此顺序排列。

  • static List<String> FORMAT_PROPERTIES − 此格式列表仅包含“java.properties”。

  • static long TTL_DONT_CACHE − 这是用于不缓存已加载的资源包实例的生存时间常量。

  • static long TTL_NO_EXPIRATION_CONTROL − 这是用于禁用缓存中已加载的资源包实例的过期控制的生存时间常量。

类构造函数

序号 构造函数和说明
1

protected Control()

这是唯一的构造函数。

类方法

序号 方法和说明
1 List<Locale>getCandidateLocales(String baseName, Locale locale)

此方法返回一个 Locale 列表,作为 baseName 和 locale 的候选区域设置。

2 static ResourceBundle.Control getControl(List<String> formats)

此方法返回一个 ResourceBundle.Control,其中 getFormats 方法返回指定的 formats。

3 Locale getFallbackLocale(String baseName, Locale locale)

此方法返回一个 Locale,该 Locale 将用作 ResourceBundle.getBundle 工厂方法进一步资源包搜索的回退区域设置。

4 List<String> getFormats(String baseName)

此方法返回一个包含字符串的列表,这些字符串包含用于加载给定 baseName 的资源包的格式。

5 static ResourceBundle.Control getNoFallbackControl(List<String> formats)

此方法返回一个 ResourceBundle.Control,其中 getFormats 方法返回指定的 formats,而 getFallbackLocale 方法返回 null。

6 long getTimeToLive(String baseName, Locale locale)

此方法返回在此 ResourceBundle.Control 下加载的资源包的生存时间 (TTL) 值。

7 boolean needsReload(String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime)

此方法根据 loadTime 给出的加载时间或其他条件确定缓存中过期的包是否需要重新加载。

8 ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload)

此方法使用给定的类加载器(如果需要)为给定格式和区域设置的给定包名称实例化一个资源包。

9 String toBundleName(String baseName, Locale locale)

此方法将给定的 baseName 和 locale 转换为包名称。

10 String toResourceName(String bundleName, String suffix)

此方法通过将 bundleName 中的所有“.”都替换为“/”,并附加一个“.”和给定的文件后缀,将给定的 bundleName 转换为 ClassLoader.getResource 方法所需的形式。

继承的方法

此类继承自以下类的方法:

  • java.util.Object

获取 Locale.US 的控制权

以下示例演示了如何使用 Java ResourceBundle.Control getControl() 方法获取 ResourceBundle.Control 对象。我们使用 getControl() 方法创建了一个使用 FORMAT_DEFAULT 的资源包控制。然后,使用 getCandidateLocales() 方法打印相应 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.getCandidateLocales("hello", Locale.US));
   }
}

输出

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

hello = Hello World!
广告