[英]Java convert object to Class how?
我的代碼是:
public static Object mylang;
public static class lang_eng {
public static final String x="Refreshing...";
}
public static class lang_de {
public static final String x="Refreshing...";
}
...
if (LANG.equals("1")) {
mylang=(lang_eng)new Object();
} else {
mylang=(lang_de)new Object();
}
但是當我引用mylang.x
,我得到:“ x無法解析或不是字段”
有什么解決方案?
這不是面向對象編程的工作方式。
如果要使用LangEng
(不是Java中的標准命名約定使用CamelCase,而不是underscore_separation),則必須使用new LangEng()
實例化它。 但是即使那樣,您也將無法訪問x
。
在這種情況下,您可以做的是使用方法getX()
定義一個接口,並讓兩種語言都實現它。 然后,您可以使用Language mylang
。
而且,將這種方法用於i18n並不是一個好主意。 更好地使用java.util.ResourceBundle
正如TJ Crowder所說,我將使用內部化支持。
但是,以防萬一您需要一些額外的功能,代碼應類似於:
public static Object mylang;
if (LANG.equals("1")) {
mylang=new lang_eng();
} else {
mylang=new lang_de();
}
當您要使用它時:
if(mylang instanceof lang_eng){
lang_eng langTemp = (lang_eng)mylang;
System.out.println(langTemp.x());
}
if(mylang instanceof lang_de){
lang_de langTemp = (lang_de)mylang;
System.out.println(langTemp.x());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.