在Java中将数组值设置为等于动态加载的类中的变量

时间:2013-08-10 06:07:07

标签: java arrays class variables dynamic

我有一个看似简单的问题,我在大约一周的搜索中找不到解决方案,所以我想我会问。我想取一个数组值,比如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是一个引用包含public static int variableOne的类的变量?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

anArray[1]=OtherClassName.variableOne

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

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