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!
廣告