使用字符串代替变量名称

如果您有一个名为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)); 

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

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

 Map currentComponents = new HashMap(); currentComponents.put("a", new JButton()); String x = "a"; currentComponents.get(x).setPreferredSize(new Dimension(40,30)); 

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

Java变量名为xyz

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

String x="a";

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