我的代码是:
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,而不是下划线分隔符),那么您必须使用 new LangEng()
实例化它。但即使这样,您也无法访问 x
。
在这种情况下,您可以做的是使用方法 getX()
定义一个接口(interface),并让两种语言都实现它。然后你就可以拥有Language mylang
。
而且 - 对于 i18n 使用这种方法并不是一个好主意。更好用java.util.ResourceBundle
关于Java如何将对象转换为类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4244943/