0

我有一个看似简单的问题,我在大约一周的搜索中无法找到解决方案,所以我想我会问。我想取一个数组值,比如说anArray[1] 并将它设置为等于另一个类中的一个变量......otherClass.variableOne

这很容易做到,但我希望能够使用一个变量作为我想要变量的类的名称。因此,我想要的不是“otherClass.variableOne”,而是:

String classVar = "otherClass";    
anArray[1]=classVar.variableOne;

我不确定是否需要将 classVar 设置为等于...className(otherClass)或类似的东西。我对Java很陌生,我遇到了很大的困难。

我知道这看起来很愚蠢,但对于我想做的事情是必要的。我已经考虑过反思,但它似乎无法满足我的需求。基本上我的问题是:

String classVar = "otherClass";
anArray[1]=classVar.variableOne

在 classVar 是一个引用包含公共静态 int variableOne 的类的变量的情况下,我该如何进行类似的工作?

请原谅有限的编程经验。任何帮助是极大的赞赏。提前致谢。

4

2 回答 2

1

您需要使用反射 API。您可以使用它来获取一个Class表示“OtherClass”的变量(例如,Class.forName("com.example.OtherClass"),然后遍历它的字段和方法,甚至创建它的新实例。

于 2013-08-10T06:10:59.267 回答
0

我不确定我是否完全理解你的问题,如果我的回答没有用,请见谅。如果您只需要分配 a 的值,public static int variableOne那么您可以通过以静态方式访问变量来完成此操作。以某种方式访问​​变量static意味着只需使用 classname.staticVariable 来获取变量值。我相信这是你需要的:

anArray[1]=OtherClassName.variableOne

将 ClassName 和 variableName 替换为您的实际类名和变量名。

阅读本文以了解有关类和实例变量的更多信息:http: //docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

于 2013-08-10T06:12:01.660 回答