JavaTM 2 Platform
Standard Ed. 6

java.util
類別 ResourceBundle

java.lang.Object
  繼承者 java.util.ResourceBundle
直接已知子類別:
ListResourceBundle, PropertyResourceBundle

public abstract class ResourceBundle
extends Object

資源包包含特定於語言環境的物件。當程序需要一個特定於語言環境的資源時(如 String),程序可以從適合當前使用者語言環境的資源包中載入它。使用這種方式,可以編寫很大程度上獨立於使用者語言環境的程序程式碼,它將資源包中大部分(即便不是全部)特定於語言環境的資訊隔離開來。

這使編寫的程序可以:

資源包屬於這樣的系列,其成員共享一個公共的基本名稱,但是名稱中還有標識其語言環境的其他元件。例如,某個資源包系列的基本名稱可能是 "MyResources"。該系列應該有一個預設資源包,其名稱與其系列名相同( "MyResources"),如果不支持指定的語言環境,則應該將此資源包用作最後的手段。然後,此系列可根據需要提供特定於語言環境的成員,例如一個名為 "MyResources_de" 的德語資源套件。

一個系列中的每個資源包都包含相同的項,但是這些項已經針對該資源包所代表的語言環境進行了翻譯。例如,"MyResources" 和 "MyResources_de" 可能有用在取消操作按鈕上的 String。在 "MyResources" 中,String 可能包含 "Cancel",而 "MyResources_de" 中則可能包含 "Abbrechen"。

如果不同的國家/地區有不同的資源,則可以對它們進行限定:例如,"MyResources_de_CH" 套件含瑞士 (CH) 中包含德語 (de) 的物件。如果只想修改限定中的某些資源,就可以這樣做。

當程序需要特定於語言環境的物件時,它使用 getBundle 方法載入 ResourceBundle 類別:

 ResourceBundle myResources =
      ResourceBundle.getBundle("MyResources", currentLocale);
 

資源包包含鍵/值對。鍵唯一地標識了包中特定於語言環境的物件。下面是一個 ListResourceBundle 範例,它包含兩個鍵/值對:

 public class MyResources extends ListResourceBundle {
     protected Object[][] getContents() {
         return new Object[][] {
             // LOCALIZE THE SECOND STRING OF EACH ARRAY (e.g., "OK")
             {"OkKey", "OK"},
             {"CancelKey", "Cancel"},
             // END OF MATERIAL TO LOCALIZE
        };
     }
 }
 
鍵始終為 String 型別。在此範例中,兩個鍵是 "OkKey" 和 "CancelKey"。在上面的範例中,值也是 String 型別,即 "OK" 和 "Cancel",但並非必須如此。值可以是任意物件型別。

可以使用適當的獲取方法從資源包中獲取某個物件。因為 "OkKey" 和 "CancelKey" 都是字元串,所以應該使用 getString 獲取它們:

 button1 = new Button(myResources.getString("OkKey"));
 button2 = new Button(myResources.getString("CancelKey")); 
 
所有獲取方法都需要將鍵作為參數並返回物件(如果找到的話)。如果未找到物件,則獲取方法將拋出 MissingResourceException

除了 getString 之外,ResourceBundle 還提供了獲取字元串陣列的方法 getStringArray,以及用於其他任意物件型別的 getObject 方法。使用 getObject 時,必須將結果強制轉換為適當的型別。例如:

 int[] myIntegers = (int[]) myResources.getObject("intList");
 

Java 平臺提供了兩個 ResourceBundle 的子類別,即 ListResourceBundlePropertyResourceBundle,這為創建資源提供了一種相當簡單的方式。正如在前面範例中所看到的,ListResourceBundle 以鍵/值對的列表方式管理其資源。PropertyResourceBundle 則使用一個屬性檔案來管理其資源。

如果 ListResourceBundlePropertyResourceBundle 無法滿足需求,那麼可以編寫自己的 ResourceBundle 子類別。子類別必須覆寫兩個方法:handleGetObjectgetKeys()

ResourceBundle.Control

ResourceBundle.Control 類別提供通過帶 ResourceBundle.Control 實例的 getBundle 處理器方法執行包載入進程所需的資訊。為了啟用非標準資源包格式、更改搜尋策略或定義快取記憶體參數,可以實作自己的子類別。有關細節請參考類別和 getBundle 處理器方法的描述。

快取記憶體管理

getBundle 處理器方法創建的資源包實例是預設快取記憶體的,如果資源包實例已經快取記憶體,那麼這些處理器方法將多次返回相同的資源包實例。getBundle 客戶端可以清除快取記憶體、使用生存時間值管理已快取記憶體資源包實例的生命週期,或者指定不快取記憶體資源包實例。有關細節請參考getBundle 處理器方法clearCacheResourceBundle.Control.getTimeToLiveResourceBundle.Control.needsReload 的描述。

範例

下面是一個極其簡單的 ResourceBundle 子類別範例 MyResources,它管理兩個資源(對於大量的資源,應該使用 Map)。注意,如果某個「父級」ResourceBundle 處理具有相同值的相同鍵(如下面的 okKey),則無需提供值。
 // default (English language, United States)
 public class MyResources extends ResourceBundle {
     public Object handleGetObject(String key) {
         if (key.equals("okKey")) return "Ok";
         if (key.equals("cancelKey")) return "Cancel";
         return null;
     }
     public Enumeration<String> getKeys() {
         return Collections.enumeration(keySet());
     }
 
     // Overrides handleKeySet() so that the getKeys() implementation
     // can rely on the keySet() value.
     protected Set<String> handleKeySet() {
         return new HashSet<String>(Arrays.asList("okKey", "cancelKey"));
     } 
 }

 // German language
 public class MyResources_de extends MyResources {
     public Object handleGetObject(String key) {
         // don't need okKey, since parent level handles it.
         if (key.equals("cancelKey")) return "Abbrechen";
         return null;
     }
   protected Set<String> handleKeySet() {
         return new HashSet<String>(Arrays.asList("cancelKey"));
     }
 }
 
不必限制只使用 ResourceBundle 的單個系列。例如,可以有異常訊息 ExceptionResources 的套件集(ExceptionResources_frExceptionResources_de 等)和視窗小部件 WidgetResource 的套件集(WidgetResources_frWidgetResources_de 等);可以按自己喜歡的方式分解資源。

從以下版本開始:
JDK1.1
另請參見:
ListResourceBundle, PropertyResourceBundle, MissingResourceException

巢狀類別摘要
static class ResourceBundle.Control
          ResourceBundle.Control 定義一個回調方法集,它在包載入進程中由 ResourceBundle.getBundle 處理器方法調用。
 
欄位摘要
protected  ResourceBundle parent
          此套件的父套件。
 
建構子摘要
ResourceBundle()
          唯一的建構子(由子類別建構子調用,通常是隱式的)。
 
方法摘要
static void clearCache()
          從已經使用調用者的類別載入器載入的快取記憶體中移除所有資源套件。
static void clearCache(ClassLoader loader)
          從已經使用給定類別載入器載入的快取記憶體中移除所有資源套件。
 boolean containsKey(String key)
          確定給定 key 是否包含在此 ResourceBundle 及其父包中。
static ResourceBundle getBundle(String baseName)
          使用指定的基本名稱、預設的語言環境和調用者的類別載入器獲取資源套件。
static ResourceBundle getBundle(String baseName, Locale locale)
          使用指定的基本名稱、語言環境和調用者的類別載入器獲取資源套件。
static ResourceBundle getBundle(String baseName, Locale locale, ClassLoader loader)
          使用指定的基本名稱、語言環境和類別載入器獲取資源套件。
static ResourceBundle getBundle(String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control)
          使用指定基本名稱、目標語言環境、類別載入器和控制元件返回資源套件。
static ResourceBundle getBundle(String baseName, Locale targetLocale, ResourceBundle.Control control)
          使用指定基本名稱、目標語言環境和控制元件、調用者的類別載入器返回一個資源套件。
static ResourceBundle getBundle(String baseName, ResourceBundle.Control control)
          使用指定基本名稱、預設語言環境和指定控制元件返回一個資源套件。
abstract  Enumeration<String> getKeys()
          返回鍵的列舉。
 Locale getLocale()
          返回此資源套件的語言環境。
 Object getObject(String key)
          從此資源包或它的某個父包中獲取給定鍵的物件。
 String getString(String key)
          從此資源包或它的某個父包中獲取給定鍵的字元串。
 String[] getStringArray(String key)
          從此資源包或它的某個父包中獲取給定鍵的字元串陣列。
protected abstract  Object handleGetObject(String key)
          從此資源包中獲取給定鍵的物件。
protected  Set<String> handleKeySet()
          返回 套件含在此 ResourceBundle 中的鍵的 Set
 Set<String> keySet()
          返回此 ResourceBundle 及其父包中包含的所有鍵的 Set
protected  void setParent(ResourceBundle parent)
          設置此套件的父套件。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

parent

protected ResourceBundle parent
此套件的父套件。當此套件不包含特定資源時,由 getObject 搜尋父套件。

建構子詳細資訊

ResourceBundle

public ResourceBundle()
唯一的建構子(由子類別建構子調用,通常是隱式的)。

方法詳細資訊

getString

public final String getString(String key)
從此資源包或它的某個父包中獲取給定鍵的字元串。調用此方法等同於調用
(String) getObject(key)

參數:
key - 所需字元串的鍵
返回:
給定鍵的字元串
拋出:
NullPointerException - 如果 keynull
MissingResourceException - 如果未找到給定鍵的物件
ClassCastException - 如果為給定鍵找到的物件是不是字元串

getStringArray

public final String[] getStringArray(String key)
從此資源包或它的某個父包中獲取給定鍵的字元串陣列。調用此方法等同於調用
(String[]) getObject(key)

參數:
key - 所需字元串陣列的鍵
返回:
給定鍵的字元串陣列
拋出:
NullPointerException - 如果 keynull
MissingResourceException - 如果未找到給定鍵的物件
ClassCastException - 如果為給定鍵找到的物件不是字元串陣列

getObject

public final Object getObject(String key)
從此資源包或它的某個父包中獲取給定鍵的物件。此方法首先嘗試使用 handleGetObject 從此資源包中獲取物件。如果不成功,並且父資源包不為 null,則調用父套件的 getObject 方法。如果仍不成功,則拋出 MissingResourceException。

參數:
key - 所需物件的鍵
返回:
給定鍵的物件
拋出:
NullPointerException - 如果 keynull
MissingResourceException - 如果未找到給定鍵的物件

getLocale

public Locale getLocale()
返回此資源套件的語言環境。調用 getBundle() 後可使用此方法來確定返回的資源套件是真正對應於所請求的語言環境,還是只是一個回退。

返回:
此資源套件的語言環境

setParent

protected void setParent(ResourceBundle parent)
設置此套件的父套件。當此套件不包含特定的資源時,通過 getObject 來搜尋父套件。

參數:
parent - 此套件的父套件。

getBundle

public static final ResourceBundle getBundle(String baseName)
使用指定的基本名稱、預設的語言環境和調用者的類別載入器獲取資源套件。調用此方法等同於調用
getBundle(baseName, Locale.getDefault(), this.getClass().getClassLoader())
不同之處在於要使用 ResourceBundle 的安全特權來運行 getClassLoader()。有關搜尋和實例化策略的資訊,請參閱 getBundle

參數:
baseName - 資源套件的基本名稱,是一個完全限定類別名
返回:
具有給定基本名稱和預設語言環境的資源包
拋出:
NullPointerException - 如果 baseNamenull
MissingResourceException - 如果未找到指定基本名稱的資源包

getBundle

public static final ResourceBundle getBundle(String baseName,
                                             ResourceBundle.Control control)
使用指定基本名稱、預設語言環境和指定控制元件返回一個資源套件。調用此方法等同於調用
 getBundle(baseName, Locale.getDefault(),
           this.getClass().getClassLoader(), control),
 
不同之處在於要使用 ResourceBundle 的安全特權來運行 getClassLoader()。有關帶 ResourceBundle.Control 的資源包載入進程的完整描述,請參閱 getBundle

參數:
baseName - 資源套件的基本名稱,一個完全限定類別名
control - 為資源包載入進程提供資訊的控制元件
返回:
用於給定基本名稱和預設語言環境的資源包
拋出:
NullPointerException - 如果 baseNamecontrolnull
MissingResourceException - 如果沒有找到用於指定基本名稱的資源包
IllegalArgumentException - 如果給定 control 沒有正確執行(例如,control.getCandidateLocales 返回 null。)注意,control 的驗證是根據需要執行的。
從以下版本開始:
1.6

getBundle

public static final ResourceBundle getBundle(String baseName,
                                             Locale locale)
使用指定的基本名稱、語言環境和調用者的類別載入器獲取資源套件。調用此方法等同於調用
getBundle(baseName, locale, this.getClass().getClassLoader())
不同之處在於要使用 ResourceBundle 的安全特權來運行 getClassLoader()。有關搜尋和實例化策略的資訊,請參閱 getBundle

參數:
baseName - 資源套件的基本名稱,是一個完全限定類別名
locale - 資源包所需的語言環境
返回:
具有給定基本名稱和語言環境的資源包
拋出:
NullPointerException - 如果 baseNamelocalenull
MissingResourceException - 如果未找到指定基本名稱的資源包

getBundle

public static final ResourceBundle getBundle(String baseName,
                                             Locale targetLocale,
                                             ResourceBundle.Control control)
使用指定基本名稱、目標語言環境和控制元件、調用者的類別載入器返回一個資源套件。調用此方法等同於調用
 getBundle(baseName, targetLocale, this.getClass().getClassLoader(),
           control),
 
不同之處在於要使用 ResourceBundle 的安全特權來運行 getClassLoader()。有關帶 ResourceBundle.Control 的資源包載入進程的完整描述,請參閱 getBundle

參數:
baseName - 資源套件的基本名稱,一個完全限定類別名
targetLocale - 資源包所需的語言環境
control - 為資源包載入進程提供資訊的控制元件
返回:
用於給定基本名稱和 locales 中某個 Locale 的資源包
拋出:
NullPointerException - 如果 baseNamelocalescontrolnull
MissingResourceException - 如果在任何 locales 中都無法找到用於指定基本名稱的資源套件。
IllegalArgumentException - 如果給定 control 沒有正確執行(例如,control.getCandidateLocales 返回 null。)注意,control 的驗證是根據需要執行的。
從以下版本開始:
1.6

getBundle

public static ResourceBundle getBundle(String baseName,
                                       Locale locale,
                                       ClassLoader loader)
使用指定的基本名稱、語言環境和類別載入器獲取資源套件。

從概念上講,getBundle 使用下列策略來搜尋並實例化資源包:

getBundle 使用基本名稱、指定的語言環境和預設語言環境(從 Locale.getDefault 獲得)來產生候選套件名稱 序列。如果指定語言環境的語言、國家/地區和變數都是空字元串,則基本名稱就是唯一的候選套件名稱。否則,從指定語言環境(language1、country1 和 variant1)和預設語言環境(language2、country2 和 variant2)的屬性值產生下列序列:

省略最後部分為空字元串的候選套件名稱。例如,如果 country1 是一個空字元串,則省略第二個候選套件名稱。

然後 getBundle 在候選套件名稱上進行迭代,找到第一個可實例化 為實際資源套件的候選套件名稱。對於每個候選套件名稱,它都試圖創建資源包:

如果未找到結果資源包,則拋出 MissingResourceException

找到了結果資源包後,它的父鏈 將被實例化。getBundle 在可以獲得的候選套件名稱中進行迭代,獲得名稱的方法是從結果資源套件的套件名稱中連續移除變數、國家/地區和語言(每次都用前綴 "_")。如上所述,省略最後部分為空字元串的候選套件名稱。對於每個候選套件名稱,都嘗試實例化一個資源包,如上所述。只要能夠成功,就用新的資源包調用先前已實例化資源套件的 setParent 方法,除非先前已實例化的資源包已經有非 null 的父套件。

getBundle 可以快取記憶體已實例化的資源包,並且可以多次返回相同的資源包實例。

baseName 參數應該是一個完全限定類別名。但是,為了與早期的版本相容,Sun 的 Java SE Runtime Environment 並不對此進行檢查,所以可通過指定路徑名(使用 "/")而不是完全限定類別名(使用 ".")來存取 PropertyResourceBundle

範例:
提供了下面的類別和屬性檔案:

     MyResources.class
     MyResources.properties
     MyResources_fr.properties
     MyResources_fr_CH.class
     MyResources_fr_CH.properties
     MyResources_en.properties
     MyResources_es_ES.class
 
所有檔案的內容都是有效的(也就是說 ".class" 檔案是 ResourceBundle 的公共非抽象子類別,".properties" 檔案的語法正確)。預設的語言環境是 Locale("en", "GB")

使用給出的語言環境參數值調用 getBundle 將實例化取自以下源的資源包:

  • Locale("fr", "CH"):結果 MyResources_fr_CH.class、父 MyResources_fr.properties、父 MyResources.class
  • Locale("fr", "FR"):結果 MyResources_fr.properties、父 MyResources.class
  • Locale("de", "DE"):結果 MyResources_en.properties、父 MyResources.class
  • Locale("en", "US"):結果 MyResources_en.properties、父 MyResources.class
  • Locale("es", "ES"):結果 MyResources_es_ES.class、父 MyResources.class

不使用 MyResources_fr_CH.properties 檔案,因為它被 MyResources_fr_CH.class 隱藏了。類似地,MyResources.properties 也被 MyResources.class 隱藏了。

參數:
baseName - 資源套件的基本名稱,是一個完全限定類別名
locale - 資源包所需的語言環境
loader - 載入資源套件的類別載入器
返回:
用於給定基本名稱和語言環境的資源包
拋出:
NullPointerException - 如果 baseNamelocaleloadernull
MissingResourceException - 如果未找到指定基本名稱的資源包
從以下版本開始:
1.2

getBundle

public static ResourceBundle getBundle(String baseName,
                                       Locale targetLocale,
                                       ClassLoader loader,
                                       ResourceBundle.Control control)
使用指定基本名稱、目標語言環境、類別載入器和控制元件返回資源套件。與 不帶 control 參數的 getBundle 處理器方法不同,給定 control 指定尋找和實例化資源套件的方式。從概念上說,具有給定 control 的套件載入進程是按以下步驟執行的。

  1. 此處理器方法在快取記憶體中為指定 baseNametargetLocaleloader 尋找資源套件。如果在快取記憶體中找到所請求的資源包實例,並且該實例及其所有父實例的生存時間都已經到期,則向調用者返回該實例。否則,此處理器方法繼續進行以下載入進程。
  2. 調用 control.getFormats 方法獲取產生套件名稱或資源名稱的資源包格式。字元串 "java.class""java.properties" 分別指定基於類別和基於屬性的資源套件。其他以 "java." 開頭的字元串被保留,供以後擴展使用,不必將它們用於應用程序定義的格式。其他字元串指定應用程序定義的格式。
  3. 可以調用帶有目標語言環境的 control.getCandidateLocales 方法獲取用於已搜尋到的資源套件的候選 Locale 列表。
  4. 可以調用 control.newBundle 方法實例化針對基本套件名稱、候選語言環境和某種格式的 ResourceBundle。(參考下方關於快取記憶體尋找的註釋。)此步驟在所有候選語言環境和格式上進行迭代,直到 newBundle 方法返回一個 ResourceBundle 實例,或者該迭代已經用完了所有的組合。例如,如果候選語言環境是 Locale("de", "DE")Locale("de")Locale(""),而格式是 "java.class""java.properties",那麼以下是用來調用 control.newBundle 的語言環境和格式組合的序列。
    語言環境
    格式
    Locale("de", "DE")
    java.class
    Locale("de", "DE") java.properties
    Locale("de") java.class
    Locale("de") java.properties
    Locale("")
    java.class
    Locale("") java.properties
  5. 如果前面的步驟未找到資源包,則前進到步驟 6。如果已經找到用作基本套件的包(Locale("") 的套件),以及只包含 Locale("") 的候選語言環境列表,則向調用者返回該套件。如果已經找到作為基本套件的包,但候選語言環境列表包含 Locale("") 之外的語言環境,則暫時擱置該套件並前進到步驟 6。如果找到一個不是基本套件的包,則前進到步驟 7。
  6. 可調用 control.getFallbackLocale 方法獲取一個回退語言環境(當前目標語言環境的替代),以嘗試進一步尋找資源套件。如果該方法返回一個非 null 語言環境,那麼該語言環境將變成下一個目標語言環境,並且載入進程將從步驟 3 開始。否則,如果找到一個基本包並在前面的步驟 5 中暫時被擱置,那麼現在要將該語言環境返回給調用者。否則拋出 MissingResourceException。
  7. 此時,我們已經找到一個不是基本套件的套件。如果此套件在其實例化期間設置其父鏈,則將此套件返回給調用者。否則,根據從中找到此套件的候選語言環境列表,將此套件的父鏈實例化。最後將該套件返回給調用者。

在進行上述資源包載入進程期間,此處理器方法將在調用 control.newBundle 方法之前尋找快取記憶體。如果在該快取記憶體中找到的資源套件的生存時間已到期,則該處理器方法將調用 control.needsReload 方法確定是否需要重載資源套件。如果需要重載,則該處理器方法將調用 control.newBundle 重載資源套件。如果 control.newBundle 返回 null,則該處理器方法將在快取記憶體中放一個偽資源包,以此作為不存在資源套件的標記,從而避免後續請求所帶來的尋找開銷。這類別偽資源包同樣受到 control 所指定的到期時間控制。

所有已載入的資源包都是在預設情況下被快取記憶體的。有關細節請參閱 control.getTimeToLive

以下是帶有預設 ResourceBundle.Control 實作的套件載入進程的範例。

條件:

首先,getBundle 試圖按以下順序載入資源套件。

此時,getBundle 找到一個 foo/bar/Messages.properties,該套件被擱置,因為它不是一個基本套件。getBundle 調用返回 Locale.FRENCHcontrol.getFallbackLocale("foo.bar.Messages", Locale.ITALY)。接著,getBundle 試圖按以下順序載入一個套件。

getBundle 尋找 foo/bar/Messages_fr.properties 並創建一個 ResourceBundle 實例。然後,getBundle 根據候選語言環境列表設置其父鏈。在該列表中只有 foo/bar/Messages.properties,並且 getBundle 創建一個 ResourceBundle 實例,該實例成為用於 foo/bar/Messages_fr.properties 的實例的父實例。

參數:
baseName - 資源套件的基本名稱,一個完全限定類別名
targetLocale - 資源包所需的語言環境
loader - 載入資源套件的類別載入器
control - 為資源包載入進程提供資訊的控制元件
返回:
用於給定基本名稱和語言環境的資源包
拋出:
NullPointerException - 如果 baseNametargetLocaleloadercontrolnull
MissingResourceException - 如果沒有找到用於指定基本名稱的資源包
IllegalArgumentException - 如果給定 control 沒有正確執行(例如,control.getCandidateLocales 返回 null。)注意,control 的驗證是根據需要執行的。
從以下版本開始:
1.6

clearCache

public static final void clearCache()
從已經使用調用者的類別載入器載入的快取記憶體中移除所有資源套件。

從以下版本開始:
1.6
另請參見:
ResourceBundle.Control.getTimeToLive(String,Locale)

clearCache

public static final void clearCache(ClassLoader loader)
從已經使用給定類別載入器載入的快取記憶體中移除所有資源套件。

參數:
loader - 類別載入器
拋出:
NullPointerException - 如果 loader 為 null
從以下版本開始:
1.6
另請參見:
ResourceBundle.Control.getTimeToLive(String,Locale)

handleGetObject

protected abstract Object handleGetObject(String key)
從此資源包中獲取給定鍵的物件。如果此資源包未包含給定鍵的物件,則返回 null。

參數:
key - 所需物件的鍵
返回:
給定鍵的物件,或者返回 null
拋出:
NullPointerException - 如果 keynull

getKeys

public abstract Enumeration<String> getKeys()
返回鍵的列舉。

返回:
ResourceBundle 及其父包中所包含鍵的 Enumeration

containsKey

public boolean containsKey(String key)
確定給定 key 是否包含在此 ResourceBundle 及其父包中。

參數:
key - 資源 key
返回:
如果給定 key 套件含在此 ResourceBundle 或其父包中,則返回 true;否則返回 false
拋出:
NullPointerException - 如果 keynull
從以下版本開始:
1.6

keySet

public Set<String> keySet()
返回此 ResourceBundle 及其父包中包含的所有鍵的 Set

返回:
Set 及其父包中包含的所有鍵的 Set
從以下版本開始:
1.6

handleKeySet

protected Set<String> handleKeySet()
返回 套件含在此 ResourceBundle 中的鍵的 Set

預設實作返回 getKeys 方法返回的鍵的 Set,那些 handleGetObject 方法返回 null 的鍵除外。創建 Set 後,該值就被保存在此 ResourceBundle 中,以避免在下次調用中產生相同的 Set。可在子類別實作中覆寫此方法,以便更快地進行處理。

返回:
只包含於此 ResourceBundle 中的鍵的 Set
從以下版本開始:
1.6

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only