如何用变量的名称创建一个新类(对象?)?
比方说,我有一个类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