[英]How do I use inner classes with ListResourceBundle?
在 BankTeller 類中,我有 3 個擴展 ListResourceBundle 的內部類,即,
在 BankTeller 的主要方法中,我想使用這些類。 我嘗試使用
ResourceBundle res = ResourceBundle.getBundle("BankTeller$BankTeller",locale);
ResourceBundle res = ResourceBundle.getBundle("BankTeller.BankTeller",locale);
但兩者都給了我以下例外:
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name BankTeller$BankTeller, locale el_GR
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at lab10.BankTeller.displayValues(BankTeller.java:16)
at lab10.BankTeller.main(BankTeller.java:12)
如何加載 ResourceBundles?
如果您想使用嵌套類,您的 BankTeller 應該是公共靜態嵌套類。 我在包 com.java.util 中創建了類 ResourceBundleTest:
class ResourceBundleTest {
@Test
void getBundle_fromNestedStaticClass() {
// given
final Locale locale = new Locale("en", "GB");
// when
final ResourceBundle exampleBundle = ResourceBundle.getBundle("com.java.util.ResourceBundleTest$BankTeller", locale);
// then
assertEquals("Hello World!", exampleBundle.getString("greetings"));
}
public static class BankTeller_en_GB extends ListResourceBundle {
@Override
protected Object[][] getContents() {
return new Object[][]{{"greetings", "Hello World!"}};
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.