我有一个名为Info的类,并且我在其中描述了一堆static String变量。

public class Info{

    public static stringOne= "Hello";
    public static stringTwo = "world";

}

我希望从其他类中以Info.stringTwo的形式访问这些变量。

1.)我需要知道这是否是我在此处应用的java-Internationalization? (我拥有将在此类分配的应用程序中显示的所有消息。而且,我也希望该应用程序也支持不同的语言)

最佳答案

看看Resource bundle

文档中的副本粘贴:

当您的程序需要特定于语言环境的对象时,它将使用getBundle方法加载ResourceBundle类:

 ResourceBundle myResources =
 ResourceBundle.getBundle("MyResources", currentLocale);

资源束包含键/值对。这些键唯一地标识捆绑软件中特定于语言环境的对象。

这是一个包含两个键/值对的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”。在上面的示例中,这些值也是Strings(“确定”和“Cancel”),但不一定必须如此。值可以是任何类型的对象。
您可以使用适当的getter方法从资源包中检索对象。因为“OkKey”和“CancelKey”都是字符串,所以您将使用getString检索它们:
button1 = new Button(myResources.getString("OkKey"));
button2 = new Button(myResources.getString("CancelKey"));

08-18 11:56