要自定義ResourceBundle,可以創建一個繼承自java.util.ResourceBundle的新類,并重寫其父類中的一些方法來實現自定義的邏輯。下面是一個簡單的例子:
import java.util.ListResourceBundle;
import java.util.ResourceBundle;
public class CustomResourceBundle extends ListResourceBundle {
@Override
protected Object[][] getContents() {
return new Object[][] {
{"greeting", "Hello, World!"},
{"farewell", "Goodbye, World!"}
};
}
public static void main(String[] args) {
ResourceBundle bundle = ResourceBundle.getBundle("CustomResourceBundle");
System.out.println(bundle.getString("greeting"));
System.out.println(bundle.getString("farewell"));
}
}
在上面的例子中,我們創建了一個CustomResourceBundle類,繼承自ListResourceBundle,并實現了getContents方法來定義資源鍵值對。然后在main方法中使用ResourceBundle.getBundle方法加載自定義的ResourceBundle,并通過getString方法獲取資源的值。
需要注意的是,自定義ResourceBundle的命名需要符合規范,通常是基于類的相對路徑,例如“com.example.CustomResourceBundle”。此外,也可以通過指定不同的Locale來加載不同的資源文件,以實現國際化和本地化。