2017-03-07 32 views
0

ResourceBundleControlProvider官方Oracle documentation說:ResourceBundleControlProvider在Java中幾乎不推薦使用?

提供商實現必須使用Java Extension Mechanism作爲安裝的擴展打包。 ...

因爲:1.8

但是,當你點擊提到Java Extension Mechanism鏈接,它說:

此功能已被棄用,將在被刪除未來版本。

這是否意味着ResourceBundleControlProvider接口被引入到Java 1.8中,因爲已經廢棄了?我們應該開始使用它嗎?爲什麼在那裏?

看起來它已經被錯誤地引入到Java 8,爲Deprecate ResourceBundleControlProvider for removal打開JDK錯誤提示:

這個接口是在JDK 8(JDK-6380549),用於替換默認的便捷方式介紹使用JDK 9中已過時的Java擴展機制來控制所提供的一個。此功能的原始請求者確認他們沒有使用此API。事實證明,據我們所知,似乎沒有這個接口的用戶。在JDK 9中添加@Deprecated標記與forRemoval=true,並且刪除JDK 10中的接口可能是適當的。

該界面看起來像一個死胎特徵,它的使用方式是如此的怪異和不切實際。

回答

1

這真的看起來像功能將在JDK 9被廢棄,至少如果從http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/760e51207cb0的代碼將在Java 9版本的一部分:提出

* @deprecated There is no longer any mechanism to install a custom 
* {@code ResourceBundleControlProvider} implementation defined 
* by the platform class loader or its ancestor. The recommended 
* way to use a custom {@code Control} implementation to load resource bundle 
* is to use {@link java.util.ResourceBundle#getBundle(String, Control)} 
* or other factory methods that take custom {@link java.util.ResourceBundle.Control}. 
*/ 
@Deprecated(since="9", forRemoval=true) 
public interface ResourceBundleControlProvider { 
0

ResourceBundleControlProvider被棄用,但它被重新 - 通過JDK-8172365 [1]進行了檢查,以找到使用此API的代碼更好的遷移路徑。它不再被棄用。如果你下載一個更新的版本,你會看到這個。

[1] https://bugs.openjdk.java.net/browse/JDK-8172365

+0

好了,但*擴展機制*已被棄用,它*必須*被用作文檔狀態... –

相關問題