使用字符串代替变量名称

Joh*_*ohn 5 java variables

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

String x="xyz";
Run Code Online (Sandbox Code Playgroud)

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

一个任意的例子:

JButton a= new JButton();
Run Code Online (Sandbox Code Playgroud)

稍后的 ...

String x="a";
Run Code Online (Sandbox Code Playgroud)

我现在想说些什么

JButton called string x.setPreferredSize(new Dimension(40,30));
Run Code Online (Sandbox Code Playgroud)

Jac*_*son 4

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

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

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

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

String x = "a";

currentComponents.get(x).setPreferredSize(new Dimension(40,30));
Run Code Online (Sandbox Code Playgroud)