Java 如何使用变量名创建类的新(对象?)?

Java 如何使用变量名创建类的新(对象?)?,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中不

假设我有一个class
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
的值。