2011-03-01 61 views
5

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

回答

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)); 
+0

@JacobM提供的解決方案的工作原理。太棒了:) – John 2011-03-02 20:42:26

0

Java變量名爲XYZ

不,它的名字是x。它的值是「xyz」。

String x="a";

現在你將值 「a」 到名爲x的字符串。它與你的JButton沒有任何關係,即使它的名字是a

4

簡短的回答是,你不能做這樣的事情。這不僅僅是Java語言的工作方式。長的答案是,您可能可以使用Reflection API來模擬某些內容。