W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
java.lang.Object
|---java.util.ResourceBundle
public abstract class ResourceBundle
extends Object
資源包包含特定于語言環(huán)境的對象。 當您的程序需要特定于語言環(huán)境的資源(例如字符串)時,您的程序可以從適合當前用戶語言環(huán)境的資源包中加載它。 通過這種方式,您可以編寫在很大程度上獨立于用戶語言環(huán)境的程序代碼,從而將資源包中的大多數(shù)(如果不是全部)特定于語言環(huán)境的信息隔離開來。
這使您可以編寫能夠:
資源包屬于其成員共享一個通用基本名稱的系列,但其名稱還具有標識其語言環(huán)境的附加組件。 例如,資源包系列的基本名稱可能是“MyResources”。 該系列應(yīng)該有一個默認資源包,它與它的系列具有相同的名稱 - “MyResources” - 如果不支持特定的語言環(huán)境,它將被用作最后的資源包。 然后,該家族可以根據(jù)需要提供盡可能多的特定于語言環(huán)境的成員,例如名為“MyResources_de”的德國成員。
一個系列中的每個資源包都包含相同的項目,但這些項目已針對該資源包所代表的語言環(huán)境進行了翻譯。 例如,“MyResources”和“MyResources_de”都可能有一個用于取消操作的按鈕的字符串。 在“MyResources”中,字符串可能包含“Cancel”,而在“MyResources_de”中,它可能包含“Abbrechen”。
如果不同國家有不同的資源,您可以進行專門化:例如,“MyResources_de_CH”包含瑞士 (CH) 的德語 (de) 對象。 如果您只想修改專精中的部分資源,您可以這樣做。
當您的程序需要特定于語言環(huán)境的對象時,它會使用 getBundle 方法加載 ResourceBundle 類:
ResourceBundle myResources =
ResourceBundle.getBundle("MyResources", currentLocale);
資源包包含鍵/值對。 這些鍵唯一地標識包中特定于語言環(huán)境的對象。 下面是一個包含兩個鍵/值對的 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
};
}
}
鍵始終是字符串。 在本例中,鍵是“OkKey”和“CancelKey”。 在上面的例子中,值也是字符串——“OK”和“Cancel”——但它們不是必須的。 這些值可以是任何類型的對象。
您可以使用適當?shù)?getter 方法從資源包中檢索對象。 因為 "OkKey" 和 "CancelKey" 都是字符串,所以您可以使用 getString 來檢索它們:
button1 = new Button(myResources.getString("OkKey"));
button2 = new Button(myResources.getString("CancelKey"));
getter 方法都需要鍵作為參數(shù),如果找到則返回對象。 如果找不到對象,getter 方法會拋出 MissingResourceException。
除了 getString,ResourceBundle 還提供了獲取字符串數(shù)組的方法 getStringArray,以及用于任何其他類型對象的通用 getObject 方法。 使用 getObject 時,您必須將結(jié)果轉(zhuǎn)換為適當?shù)念愋汀?例如:
int[] myIntegers = (int[]) myResources.getObject("intList");
Java 平臺提供了 ResourceBundle 的兩個子類,ListResourceBundle 和 PropertyResourceBundle,它們提供了一種相當簡單的方法來創(chuàng)建資源。 正如您在前面的示例中簡要看到的,ListResourceBundle 將其資源作為鍵/值對列表進行管理。 PropertyResourceBundle 使用屬性文件來管理其資源。
如果 List ResourceBundle 或 PropertyResourceBundle 不適合您的需要,您可以編寫自己的 ResourceBundle 子類。 您的子類必須覆蓋兩個方法:處理 GetObject 和獲取 Keys()。
如果 ResourceBundle 子類同時被多個線程使用,則它的實現(xiàn)必須是線程安全的。 該類中非抽象方法的默認實現(xiàn),以及直接已知的具體子類 ListResourceBundle 和 PropertyResourceBundle 中的方法都是線程安全的。
ResourceBundle.Control ResourceBundle.Control 類提供了通過采用 ResourceBundle.Control 實例的 getBundle 工廠方法執(zhí)行包加載過程所需的信息。 您可以實現(xiàn)自己的子類以啟用非標準資源包格式、更改搜索策略或定義緩存參數(shù)。
對于不采用 Control 實例的 getBundle 工廠方法,可以使用已安裝的 ResourceBundleControlProvider 實現(xiàn)來修改它們加載資源包的默認行為。 在 ResourceBundle 類加載時檢測到任何已安裝的提供程序。 如果任何提供程序為給定的基本名稱提供了 Control,則將使用該 Control 而不是默認 Control。 如果安裝了多個服務(wù)提供者來支持相同的基本名稱,則將使用從 ServiceLoader 返回的第一個。
緩存管理 getBundle 工廠方法創(chuàng)建的資源包實例默認被緩存,如果已經(jīng)緩存,工廠方法會多次返回同一個資源包實例。 getBundle 客戶端可以清除緩存,使用生存時間值管理緩存的資源包實例的生命周期,或者指定不緩存資源包實例。下面是 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_fr, ExceptionResources_de, ...),還有一個用于小部件的捆綁包 WidgetResource (WidgetResources_fr, WidgetResources_de, ...); 隨心所欲地分解資源。
修飾符和類型 | 類 | 描述 |
---|---|---|
static class | ResourceBundle.Control | ResourceBundle.Control 定義了一組回調(diào)方法,這些回調(diào)方法在包加載過程中由 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) 工廠方法調(diào)用。 |
修飾符和類型 | 字段 | 描述 |
---|---|---|
protected ResourceBundle | parent | 此捆綁包的父捆綁包。 |
構(gòu)造函數(shù) | 描述 |
---|---|
ResourceBundle() | 唯一的構(gòu)造函數(shù)。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
static void | clearCache() | 從緩存中刪除所有已使用調(diào)用者的類加載器加載的資源包。 |
static void | clearCache(ClassLoader loader) | 從緩存中刪除所有使用給定類加載器加載的資源包。 |
boolean | containsKey(String key) | 確定給定鍵是否包含在此 ResourceBundle 或其父捆綁包中。 |
String | getBaseBundleName() | 如果已知,則返回此捆綁包的基本名稱,如果未知,則返回 null。 |
static ResourceBundle | getBundle(String baseName) | 使用指定的基本名稱、默認語言環(huán)境和調(diào)用者的類加載器獲取資源包。 |
static ResourceBundle | getBundle(String baseName, Locale locale) | 使用指定的基本名稱和語言環(huán)境以及調(diào)用者的類加載器獲取資源包。 |
static ResourceBundle | getBundle(String baseName, Locale locale, ClassLoader loader) | 使用指定的基本名稱、語言環(huán)境和類加載器獲取資源包。 |
static ResourceBundle | getBundle(String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control) | 使用指定的基本名稱、目標語言環(huán)境、類加載器和控件返回資源包。 |
static ResourceBundle | getBundle(String baseName, Locale targetLocale, ResourceBundle.Control control) | 使用指定的基本名稱、目標語言環(huán)境和控件以及調(diào)用者的類加載器返回資源包。 |
static ResourceBundle | getBundle(String baseName, ResourceBundle.Control control) | 使用指定的基本名稱、默認語言環(huán)境和指定的控件返回資源包。 |
abstract EnumerationString | getKeys() | 返回鍵的枚舉。 |
Locale | getLocale() | 返回此資源包的語言環(huán)境。 |
Object | getObject(String key) | 從此資源包或其父資源包中獲取給定鍵的對象。 |
String | getString(String key) | 從此資源包或其父資源包中獲取給定鍵的字符串。 |
String[] | getStringArray(String key) | 從此資源包或其父資源包中獲取給定鍵的字符串數(shù)組。 |
protected abstract Object | handleGetObject(String key) | 從此資源包中獲取給定鍵的對象。 |
protected SetString | handleKeySet() | 返回僅包含在此 ResourceBundle 中的一組鍵。 |
SetString | keySet() | 返回包含在此 ResourceBundle 及其父捆綁包中的所有鍵的 Set。 |
protected void | setParent(ResourceBundle parent) | 設(shè)置此捆綁包的父捆綁包。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
protected ResourceBundle parent
此捆綁包的父捆綁包。 當此捆綁包不包含特定資源時,getObject 將搜索父捆綁包。
public ResourceBundle()
唯一的構(gòu)造函數(shù)。 (用于子類構(gòu)造函數(shù)的調(diào)用,通常是隱式的。)
public String getBaseBundleName()
如果已知,則返回此捆綁包的基本名稱,如果未知,則返回 null。 如果不為 null,則這是加載資源包時傳遞給 ResourceBundle.getBundle(...) 方法的 baseName 參數(shù)的值。
返回:
資源包的基本名稱,由 ResourceBundle.getBundle(...) 方法提供和預(yù)期。
public final String getString(String key)
從此資源包或其父資源包中獲取給定鍵的字符串。 調(diào)用該方法相當于調(diào)用
(String) getObject(key).
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 所需字符串的鍵 |
返回:
給定鍵的字符串
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 key 為空 |
MissingResourceException | 如果找不到給定鍵的對象 |
ClassCastException | 如果為給定鍵找到的對象不是字符串 |
public final String[] getStringArray(String key)
從此資源包或其父資源包中獲取給定鍵的字符串數(shù)組。 調(diào)用該方法相當于調(diào)用
(String[]) getObject(key).
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 所需字符串數(shù)組的鍵 |
返回:
給定鍵的字符串數(shù)組
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 key 為空 |
MissingResourceException | 如果找不到給定鍵的對象 |
ClassCastException | 如果為給定鍵找到的對象不是字符串數(shù)組 |
public final Object getObject(String key)
從此資源包或其父資源包中獲取給定鍵的對象。 此方法首先嘗試使用 handleGetObject 從此資源包中獲取對象。 如果不成功,并且父資源包不為空,則調(diào)用父資源的 getObject 方法。 如果仍然不成功,則拋出 MissingResourceException。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 所需對象的鍵 |
返回:
給定鍵的對象
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 key 為空 |
MissingResourceException | 如果找不到給定鍵的對象 |
public Locale getLocale()
返回此資源包的語言環(huán)境。 在調(diào)用 getBundle() 之后可以使用此方法來確定返回的資源包是否真的對應(yīng)于請求的語言環(huán)境或者是一個后備。
返回:
此資源包的語言環(huán)境
protected void setParent(ResourceBundle parent)
設(shè)置此捆綁包的父捆綁包。 當此捆綁包不包含特定資源時,getObject 將搜索父捆綁包。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
parent | 此捆綁包的父捆綁包。 |
public static final ResourceBundle getBundle(String baseName)
使用指定的基本名稱、默認語言環(huán)境和調(diào)用者的類加載器獲取資源包。 調(diào)用該方法相當于調(diào)用
getBundle(baseName, Locale.getDefault(), this.getClass().getClassLoader()),
除了 getClassLoader() 以 ResourceBundle 的安全權(quán)限運行。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
baseName | 資源包的基本名稱,完全限定的類名 |
返回:
給定基本名稱和默認語言環(huán)境的資源包
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 baseName 為空 |
MissingResourceException | 如果找不到指定基本名稱的資源包 |
public static final ResourceBundle getBundle(String baseName, ResourceBundle.Control control)
使用指定的基本名稱、默認語言環(huán)境和指定的控件返回資源包。 調(diào)用該方法相當于調(diào)用
getBundle(baseName, Locale.getDefault(),
this.getClass().getClassLoader(), control),
除了 getClassLoader() 以 ResourceBundle 的安全權(quán)限運行。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
baseName | 資源包的基本名稱,完全限定的類名 |
control | 為資源包加載過程提供信息的控件 |
返回:
給定基本名稱和默認語言環(huán)境的資源包
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 baseName 或 control 為空 |
MissingResourceException | 如果找不到指定基本名稱的資源包 |
IllegalArgumentException | 如果給定的控件沒有正確執(zhí)行(例如,control.getCandidateLocales 返回 null。)請注意,控件的驗證是根據(jù)需要執(zhí)行的。 |
public static final ResourceBundle getBundle(String baseName, Locale locale)
使用指定的基本名稱和語言環(huán)境以及調(diào)用者的類加載器獲取資源包。 調(diào)用該方法相當于調(diào)用
getBundle(baseName, locale, this.getClass().getClassLoader()),
除了 getClassLoader() 以 ResourceBundle 的安全權(quán)限運行。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
baseName | 資源包的基本名稱,完全限定的類名 |
locale | 需要資源包的語言環(huán)境 |
返回:
給定基本名稱和語言環(huán)境的資源包
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 baseName 或 locale 為 null |
MissingResourceException | 如果找不到指定基本名稱的資源包 |
public static final ResourceBundle getBundle(String baseName, Locale targetLocale, ResourceBundle.Control control)
使用指定的基本名稱、目標語言環(huán)境和控件以及調(diào)用者的類加載器返回資源包。 調(diào)用該方法相當于調(diào)用
getBundle(baseName, targetLocale, this.getClass().getClassLoader(),
control),
除了 getClassLoader() 以 ResourceBundle 的安全權(quán)限運行。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
baseName | 資源包的基本名稱,完全限定的類名 |
targetLocale | 需要資源包的語言環(huán)境 |
control | 為資源包加載過程提供信息的控件 |
返回:
給定基本名稱的資源包和語言環(huán)境中的語言環(huán)境
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 baseName、locales 或 control 為 null |
MissingResourceException | 如果在任何語言環(huán)境中都找不到指定基本名稱的資源包。 |
IllegalArgumentException | 如果給定的控件沒有正確執(zhí)行(例如,control.getCandidateLocales 返回 null。)請注意,控件的驗證是根據(jù)需要執(zhí)行的。 |
public static ResourceBundle getBundle(String baseName, Locale locale, ClassLoader loader)
使用指定的基本名稱、語言環(huán)境和類加載器獲取資源包。
此方法的行為與調(diào)用 getBundle(java.lang.String,java.util.Locale,java.lang.ClassLoader,java.util.ResourceBundle.Control) 并傳遞 Control 的默認實例相同,除非 ResourceBundleControlProvider SPI 提供了另一個 Control . 參考修改默認行為的說明。
下面描述了默認行為。
getBundle 使用基本名稱、指定的語言環(huán)境和默認語言環(huán)境(從 Locale.getDefault 獲得)來生成一系列候選包名稱。 如果指定語言環(huán)境的語言、腳本、國家和變體都是空字符串,則基本名稱是唯一的候選包名稱。 否則,將根據(jù)指定區(qū)域設(shè)置(語言、腳本、國家和變體)的屬性值生成候選區(qū)域設(shè)置列表,并將其附加到基本名稱。 通常,這將如下所示:
baseName + "_" + language + "_" + script + "_" + country + "_" + variant
baseName + "_" + language + "_" + script + "_" + country
baseName + "_" + language + "_" + script
baseName + "_" + language + "_" + country + "_" + variant
baseName + "_" + language + "_" + country
baseName + "_" + language
最后一個組件為空字符串的候選包名稱以及下劃線將被省略。 例如,如果 country 是一個空字符串,則上面的第二個和第五個候選捆綁包名稱將被省略。 此外,如果 script 為空字符串,則省略包括 script 在內(nèi)的候選名稱。 例如,語言為“de”且變體為“JAVA”的語言環(huán)境將生成以下基本名稱為“MyResource”的候選名稱。
MyResource_de__JAVA
MyResource_de
在變體包含一個或多個下劃線 ('_') 的情況下,通過截斷最后一個下劃線及其后面的部分生成的包名稱序列將插入到具有原始變體的候選包名稱之后。 例如,對于語言為“en”、腳本“Latn”、國家/地區(qū)“US”和變體“WINDOWS_VISTA”以及捆綁包基本名稱“MyResource”的語言環(huán)境,將生成以下候選捆綁包名稱列表:
MyResource_en_Latn_US_WINDOWS_VISTA
MyResource_en_Latn_US_WINDOWS
MyResource_en_Latn_US
MyResource_en_Latn
MyResource_en_US_WINDOWS_VISTA
MyResource_en_US_WINDOWS
MyResource_en_US
MyResource_en
注意:對于某些語言環(huán)境,候選捆綁包名稱列表包含額外的名稱,或者捆綁包名稱的順序略有修改。
getBundle 然后遍歷候選包名稱以找到第一個可以實例化實際資源包的名稱。 它使用默認控件的 Control#getFormats 方法,該方法為每個生成的名稱生成兩個包名稱,第一個是類名,第二個是屬性文件名。 對于每個候選包名稱,它會嘗試創(chuàng)建一個資源包:
這一直持續(xù)到結(jié)果資源包被實例化或候選包名稱列表用完為止。 如果沒有找到匹配的資源包,則調(diào)用默認控件的 Control#getFallbackLocale 方法,該方法返回當前的默認語言環(huán)境。 使用此語言環(huán)境生成一個新的候選語言環(huán)境名稱序列,并再次搜索,如上所述。
如果仍然沒有找到結(jié)果包,則僅查找基本名稱。 如果這仍然失敗,則會引發(fā) MissingResourceException。
一旦找到結(jié)果資源包,就會實例化其父鏈。 如果結(jié)果包已經(jīng)有一個父級(可能是因為它是從緩存中返回的),則鏈是完整的。
否則,getBundle 會檢查在生成結(jié)果資源包的過程中使用的候選語言環(huán)境列表的其余部分。 (和以前一樣,最終組件為空字符串的候選包名稱被省略。)當涉及到候選列表的末尾時,它會嘗試純包名稱。 對于每個候選包名稱,它都會嘗試實例化一個資源包(首先查找一個類,然后查找一個屬性文件,如上所述)。
無論何時成功,它都會使用新的資源包調(diào)用先前實例化的資源包的 setParent 方法。 這一直持續(xù)到名稱列表用完或當前捆綁包已經(jīng)有一個非空父級。
父鏈完成后,將返回捆綁包。
注意:getBundle 緩存實例化的資源包,并可能多次返回相同的資源包實例。
注意:baseName 參數(shù)應(yīng)該是一個完全限定的類名。 但是,為了與早期版本兼容,Sun 的 Java SE 運行時環(huán)境不會驗證這一點,因此可以通過指定路徑名(使用“/”)而不是完全限定的類名(使用“.”)來訪問 PropertyResourceBundles .
例子:
提供了以下類和屬性文件:
MyResources.class
MyResources.properties
MyResources_fr.properties
MyResources_fr_CH.class
MyResources_fr_CH.properties
MyResources_en.properties
MyResources_es_ES.class
所有文件的內(nèi)容都是有效的(即“.class”文件的 ResourceBundle 的公共非抽象子類,語法正確的“.properties”文件)。 默認語言環(huán)境是 Locale("en", "GB")。
使用以下語言環(huán)境參數(shù)調(diào)用 getBundle 將實例化資源包,如下所示:
文件 MyResources_fr_CH.properties 從未使用過,因為它被 MyResources_fr_CH.class 隱藏。 同樣,MyResources.properties 也被 MyResources.class 隱藏。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
baseName | 資源包的基本名稱,完全限定的類名 |
locale | 需要資源包的語言環(huán)境 |
loader | 加載資源包的類加載器 |
返回:
給定基本名稱和語言環(huán)境的資源包
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 baseName、locale 或 loader 為 null |
MissingResourceException | 如果找不到指定基本名稱的資源包 |
public static ResourceBundle getBundle(String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control)
使用指定的基本名稱、目標語言環(huán)境、類加載器和控件返回資源包。 與沒有 controlargument 的 getBundlefactory 方法不同,給定的控件指定如何定位和實例化資源包。 從概念上講,具有給定控件的包加載過程在以下步驟中執(zhí)行。
在上面的資源包加載過程中,這個工廠方法會在調(diào)用 Control#newBundle(String, Locale, String, ClassLoader, boolean) 方法之前查找緩存。 如果緩存中找到的資源包的生存期已經(jīng)過期,工廠方法調(diào)用ResourceBundle.Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long)方法判斷資源包是否需要 要重新加載。 如果需要重新加載,工廠方法調(diào)用 control.newBundle 來重新加載資源包。 如果 control.newBundle 返回 null,工廠方法會將一個虛擬資源包放入緩存中,作為不存在資源包的標記,以避免后續(xù)請求的查找開銷。 此類虛擬資源束處于與 control 指定的相同的過期控制之下。
默認情況下,所有加載的資源包都被緩存。
以下是使用默認 ResourceBundle.Control 實現(xiàn)的包加載過程的示例。
條件:
首先,getBundle 嘗試按以下順序加載資源包。
此時,getBundle 找到 foo/bar/Messages.properties,因為它是基本包,所以將其擱置。 getBundle 調(diào)用返回 Locale.FRENCH 的 Control#getFallbackLocale(String, Locale)。 接下來,getBundle 嘗試按以下順序加載包。
getBundle 找到 foo/bar/Messages_fr.properties 并創(chuàng)建一個 ResourceBundle 實例。 然后,getBundle 從候選語言環(huán)境列表中設(shè)置其父鏈。 在列表中僅找到 foo/bar/Messages.properties,getBundle 創(chuàng)建一個 ResourceBundle 實例,該實例成為 foo/bar/Messages_fr.properties 實例的父級。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
baseName | 資源包的基本名稱,完全限定的類名 |
targetLocale | 需要資源包的語言環(huán)境 |
loader | 加載資源包的類加載器 |
control | 為資源包加載過程提供信息的控件 |
返回:
給定基本名稱和語言環(huán)境的資源包
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 baseName、targetLocale、loader 或 control 為 null |
MissingResourceException | 如果找不到指定基本名稱的資源包 |
IllegalArgumentException | 如果給定的控件沒有正確執(zhí)行(例如,control.getCandidateLocales 返回 null。)請注意,控件的驗證是根據(jù)需要執(zhí)行的。 |
public static final void clearCache()
從緩存中刪除所有已使用調(diào)用者的類加載器加載的資源包。
public static final void clearCache(ClassLoader loader)
從緩存中刪除所有使用給定類加載器加載的資源包。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
loader | 類加載器 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 loader 為空 |
protected abstract Object handleGetObject(String key)
從此資源包中獲取給定鍵的對象。 如果此資源包不包含給定鍵的對象,則返回 null。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 所需對象的鍵 |
返回:
給定鍵的對象,或 null
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 key 為空 |
public abstract EnumerationString getKeys()
返回鍵的枚舉。
返回:
此 ResourceBundle 及其父捆綁包中包含的鍵的枚舉。
public boolean containsKey(String key)
確定給定鍵是否包含在此 ResourceBundle 或其父捆綁包中。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 資源鍵 |
返回:
如果給定鍵包含在此 ResourceBundle 或其父包中,則為 true; 否則為 false。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 key 為空 |
public SetString keySet()
返回包含在此 ResourceBundle 及其父捆綁包中的所有鍵的 Set。
返回:
此 ResourceBundle 及其父捆綁包中包含的所有鍵的集合。
protected SetString handleKeySet()
返回僅包含在此 ResourceBundle 中的一組鍵。
默認實現(xiàn)返回由 getKeys 方法返回的一組鍵,除了 handleGetObject 方法返回 null 的鍵。 創(chuàng)建 Set 后,該值將保存在此 ResourceBundle 中,以避免在后續(xù)調(diào)用中生成相同的 Set。 子類可以重寫此方法以加快處理速度。
返回:
僅包含在此 ResourceBundle 中的一組鍵
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: