|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.spi.LocaleServiceProvider
public abstract class LocaleServiceProvider
此類別是所有與語言環境有關的服務提供者介面(SPI)的父級類別。
與語言環境有關的服務提供者介面是與 java.text
和 java.util
套件中與語言環境有關的類別相對應的介面。利用這些介面,可以建構與語言環境有關的物件,可以獲取這些套件的本地名稱。對於 Java 運行時環境本身支持的語言環境集以外的語言環境,java.text
和 java.util
套件中與語言環境有關的處理器方法以及獲取名稱的方法使用提供者介面的實作來提供支持。
如果在多個配置檔案中指定了一個特定的具體提供者類別,或在同一配置檔案中多次被指定,則忽略重複的指定。指定特定提供者的配置檔案不必像提供者本身一樣位於同一個 jar 檔案或其他的分佈式單元中。提供者必須可從最初為了定位配置檔案而查詢的類別載入器存取,而不一定是載入檔案的類別載入器。
例如,DateFormatProvider
類別的實作應該採用包含以下檔案的 jar 檔案的形式:
META-INF/services/java.text.spi.DateFormatProvider檔案
java.text.spi.DateFormatProvider
應該具有如下的行:
com.foo.DateFormatProviderImpl
這是實作 DateFormatProvider
的類別的完全限定類別名稱。
在需要支持請求的語言環境時,java.text
和 java.util
套件中與語言環境有關的處理器方法和獲取名稱的方法調用服務提供者方法。這些方法先檢查 Java 運行時環境本身是否支持請求的語言環境,如果是則使用它來支持。否則,這些方法對適當介面調用已安裝提供者的 getAvailableLocales()
方法,以尋找支持所請求語言環境的提供者。如果找到了這種提供者,則調用它的其他方法獲取請求的物件或名稱。如果 Java 運行時環境本身和已安裝的提供者都不支持所請求的語言環境,那麼使用空字元串替換語言環境的第一個非空(null)的變數、國家/地區或語言字元串,以此建構一個回退語言環境,然後重新啟動尋找進程。如果變數包含一個或多個 '_',則使用取消最後一個 '_' 及其後面部分的新變數替換該變數,以此建構一個回退語言環境。即使發生回退,返回所請求物件或名稱的方法仍然使用回退之前的原語言環境進行調用。為了保證此進程能夠終止,Java 運行時環境必須支持所有與語言環境有關的服務的根語言環境。
允許名稱提供者(但不是其他物件提供者)對某些名稱請求,甚至對它們聲稱支持的語言環境(將其包括在 getAvailableLocales
的返回值中)環境返回 null。類似地,Java 運行時環境本身可能沒有它所支持的所有語言環境的所有名稱。這是因為其名稱被請求的物件集可能很大,並可能隨時變化,所以並非總是可以完全包括它們。如果 Java 運行時環境或提供者返回 null 而非名稱,那麼將按上述過程執行尋找,就像該語言環境不受支持一樣。
建構子摘要 | |
---|---|
protected |
LocaleServiceProvider()
唯一的建構子。 |
方法摘要 | |
---|---|
abstract Locale[] |
getAvailableLocales()
返回一個陣列,它包含此語言環境服務提供者可以為其提供本地化物件或名稱的所有語言環境。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
protected LocaleServiceProvider()
方法詳細資訊 |
---|
public abstract Locale[] getAvailableLocales()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。