使用字符串代替变量名称

时间:2011-03-01 16:47:05

标签: java variables

如果您有一个名为xyz的Java变量。 然后我会定义一个字符串,其中包含我想要使用的命名变量的值。

String x="xyz";

如何让Java将String x识别为变量xyz的指针?

一个任意的例子:

JButton a= new JButton();

稍后......

String x="a";

我现在要说像

这样的话
JButton called string x.setPreferredSize(new Dimension(40,30));

3 个答案:

答案 0 :(得分:5)

通常,如果要以这种方式访问​​变量,则必须使用反射,这种反射速度较慢且可能存在危险。

但是,由于您有一个非常具体的场景,我会采取不同的方法。为什么不把你的按钮或其他元素放到地图中,键是字符串:

Map<String, JComponent> currentComponents = new HashMap<String, JComponent>();

currentComponents.put("a", new JButton());

String x = "a";

currentComponents.get(x).setPreferredSize(new Dimension(40,30));

答案 1 :(得分:4)

简短的回答是你不能做这样的事情。这不是Java语言的工作方式。答案很长,您可以使用Reflection API来模拟某些内容。

答案 2 :(得分:0)

  

Java变量名为xyz

不,它名为x。它的值是“xyz”。

  

String x="a";

现在,您要将值“a”分配给名为x的字符串。它与JButton没有任何关联,即使其名称为a