2013-03-27 130 views

回答

2

你不能在Java中有一個動態變量。不過,你可以使用一個Map<String, Object>String myString爲重點,並設置新的值作爲新的類實例:

Map<String, Object> map = new HashMap<String, Object>(); 
map.put(myString, new MyClass()); 

如果你確定你的地圖將只包含MyClass情況下,那麼你可以使用Map<String, MyClass>

Map<String, MyClass> map = new HashMap<String, MyClass>(); 
1

您不能將字符串變量的值用作變量名稱。 Java不允許這樣做。

然而,在一個Map,您可以將字符串(如鑰匙)的值相關聯:

Map<String, MyClass> map = new HashMap<String, MyClass>(); 
map.put(myString, new MyClass()); 

這不正是你要尋找的,但在Java中,這是接近你將會得到。

+0

看起來像我們有同樣的想法,並花了相同的時間來寫我們的答案。 – 2013-03-27 22:52:41

+0

強類型如何相關?這更多的是關於編譯時命名:) – 2013-03-27 22:53:13

+0

@Luiggi,偉大的思想家都相同,相隔2秒! – rgettman 2013-03-27 22:53:49

0

使用地圖來存儲您Object S按您的String

public static void main(String[] args) { 
    final String myString = "something"; 
    final Map<String, Object> map = new HashMap<String, Object>(); 
    map.put(myString, new Object()); 
} 
0

索引有關使用泛型和使用這個類創建具有類型參數

public MyGenClass<K,V>{ 
private Map<K,V> map = new HashMap<K,v>(); 

public Map<K,V> getMap(){ 
    return map; 
} 

public void setMap(Map<K,V> iMap){ 
    map=iMap; 
} 

} 

一個基類的東西,就可以輕鬆搞定不同類型的地圖,同時具有類似的方法。

享受:)

相關問題