Java 如何使用变量名创建类的新(对象?)?
假设我有一个classJava 如何使用变量名创建类的新(对象?)?,java,class,Java,Class,假设我有一个classmyClass和一个字符串myString。我将如何做到这一点: myClass [value of myString] = new myClass; Java中不能有动态变量。仍然可以使用Map将字符串myString作为键,并将新值设置为类的新实例: Map<String, Object> map = new HashMap<String, Object>(); map.put(myString, new MyClass()); Java中不
myClass
和一个字符串myString
。我将如何做到这一点:
myClass [value of myString] = new myClass;
Java中不能有动态变量。仍然可以使用
Map
将字符串myString
作为键,并将新值设置为类的新实例:
Map<String, Object> map = new HashMap<String, Object>();
map.put(myString, new MyClass());
Java中不能有动态变量。仍然可以使用
Map
将字符串myString
作为键,并将新值设置为类的新实例:
Map<String, Object> map = new HashMap<String, Object>();
map.put(myString, new MyClass());
不能将字符串变量的值用作变量名。Java不允许这样 但是,使用
映射
,可以将字符串(作为键)与值关联:
Map<String, MyClass> map = new HashMap<String, MyClass>();
map.put(myString, new MyClass());
Map Map=newhashmap();
put(myString,newmyclass());
这并不完全是您想要的,但在Java中,这是您将要得到的最接近的结果。您不能使用字符串变量的值作为变量名。Java不允许这样 但是,使用
映射
,可以将字符串(作为键)与值关联:
Map<String, MyClass> map = new HashMap<String, MyClass>();
map.put(myString, new MyClass());
Map Map=newhashmap();
put(myString,newmyclass());
这并不完全是您想要的,但在Java中,这是您将要得到的最接近的东西。使用映射来存储您的
对象,该对象由字符串索引。
public static void main(String[] args) {
final String myString = "something";
final Map<String, Object> map = new HashMap<String, Object>();
map.put(myString, new Object());
}
publicstaticvoidmain(字符串[]args){
最后一个字符串myString=“something”;
final Map=new HashMap();
put(myString,newobject());
}
使用映射存储由字符串索引的对象
public static void main(String[] args) {
final String myString = "something";
final Map<String, Object> map = new HashMap<String, Object>();
map.put(myString, new Object());
}
publicstaticvoidmain(字符串[]args){
最后一个字符串myString=“something”;
final Map=new HashMap();
put(myString,newobject());
}
如何使用泛型并使用类型参数创建基类
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;
}
}
公共MyGenClass{
私有映射映射=新的HashMap();
公共地图getMap(){
返回图;
}
公共无效集合映射(映射iMap){
map=iMap;
}
}
使用这个类,您可以轻松地获得不同类型的映射,同时使用类似的方法
享受:)使用泛型和创建带有类型参数的基类怎么样
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;
}
}
公共MyGenClass{
私有映射映射=新的HashMap();
公共地图getMap(){
返回图;
}
公共无效集合映射(映射iMap){
map=iMap;
}
}
使用这个类,您可以轻松地获得不同类型的映射,同时使用类似的方法
享受:)使用字符串值作为变量?你不能。是否有这样做的原因?使用字符串值作为变量?你不能。你想这样做有什么原因吗?看起来我们有相同的想法,花了相同的时间来写答案。强打字有什么关系?这更多的是关于编译时命名:)@Armen,我认为强类型与此无关。Java编译器希望变量标识符名称在编译时直接在源文件中有一个名称,并且该标识符不依赖于,也不能依赖于任何运行时值,例如myString
的值。看起来我们有相同的想法,花了相同的时间来编写答案。强类型如何相关?这更多的是关于编译时命名:)@Armen,我认为强类型与此无关。Java编译器希望变量标识符名称在编译时直接在源文件中有一个名称,并且该标识符不依赖于,也不能依赖于任何运行时值,例如myString
的值。