比方說,我有一個類myClass
和String myString
。我該如何做到這一點:如何用變量的名稱創建一個新類(對象?)?
myClass [value of myString] = new myClass;
比方說,我有一個類myClass
和String myString
。我該如何做到這一點:如何用變量的名稱創建一個新類(對象?)?
myClass [value of myString] = new myClass;
你不能在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>();
您不能將字符串變量的值用作變量名稱。 Java不允許這樣做。
然而,在一個Map
,您可以將字符串(如鑰匙)的值相關聯:
Map<String, MyClass> map = new HashMap<String, MyClass>();
map.put(myString, new MyClass());
這不正是你要尋找的,但在Java中,這是接近你將會得到。
看起來像我們有同樣的想法,並花了相同的時間來寫我們的答案。 – 2013-03-27 22:52:41
強類型如何相關?這更多的是關於編譯時命名:) – 2013-03-27 22:53:13
@Luiggi,偉大的思想家都相同,相隔2秒! – rgettman 2013-03-27 22:53:49
使用地圖來存儲您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());
}
索引有關使用泛型和使用這個類創建具有類型參數
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;
}
}
一個基類的東西,就可以輕鬆搞定不同類型的地圖,同時具有類似的方法。
享受:)
使用字符串值作爲變量?你不能。你有這個理由嗎? – 2013-03-27 22:50:29