Java 使用HashMap和ArrayList存储变量名和值。如何使用创建新对象?
我有一个HashMap,它存储对象变量的名称和对象需要使用的值 对象创建将是:Java 使用HashMap和ArrayList存储变量名和值。如何使用创建新对象?,java,object,hashmap,Java,Object,Hashmap,我有一个HashMap,它存储对象变量的名称和对象需要使用的值 对象创建将是: Room [key] = new Room([value1]); 下面是HashMap: public static Map<String, List<String>> makeRoom(String[] room){ map = new HashMap<String, List<String>>(); int roomNumber = Int
Room [key] = new Room([value1]);
下面是HashMap:
public static Map<String, List<String>> makeRoom(String[] room){
map = new HashMap<String, List<String>>();
int roomNumber = Integer.parseInt(room[1]);
List<String> valSetOne = new ArrayList<String>();
valSetOne.add(room[2]);
valSetOne.add(room[3]);
valSetOne.add(room[4]);
valSetOne.add(room[5]);
map.put("r"+roomNumber, valSetOne);
return map;
}
}
提前谢谢。要回答您的问题,您可以这样做:
Constructor roomConstructor = Room.class.getConstructor(Integer.class);
Room r1 = roomConstructor.newInstance(Integer.parseInt(map.get("r1")));
Room r2 = roomConstructor.newInstance(Integer.parseInt(map.get("r2")));
Room r3 = roomConstructor.newInstance(Integer.parseInt(map.get("r3")));
class对象允许您获取一个构造函数,然后从中创建一个新实例,前提是您传入了正确的参数。您实际上想做什么?您不能使用映射并将
String
键(如r1
)与实例相关联吗?然后,您可以简单地根据键查找实例。代码生成需要一些特定的环境,可能会有一个更简单的解决方案来解决您的问题。看起来代码生成对吗?Java是一种编译时语言。有很多方法,但Java不适合这样做。听起来他想要一个键/值对,键是变量名,值是传递给对象构造函数的变量。我会制作一个dictionary/arraylist/hashmap,并添加@hardtacos。你到底想做什么?谢谢,我会试一试。如果成功的话,我会接受这个答案。
Constructor roomConstructor = Room.class.getConstructor(Integer.class);
Room r1 = roomConstructor.newInstance(Integer.parseInt(map.get("r1")));
Room r2 = roomConstructor.newInstance(Integer.parseInt(map.get("r2")));
Room r3 = roomConstructor.newInstance(Integer.parseInt(map.get("r3")));