簡體   English   中英

Java將對象轉換為Class的方式如何?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM