我需要以一种可以检索所有对象并按需调用它们的方法的方式存储动态创建的对象列表。
就我所见的列表和创建而言,HashMap 符合我的需要,但我对使用 HashMap 调用对象和调用它们的方法有点困惑。
作为引用,让我给你一点代码:
这是 HashMap :
Map<String, Object> unitMap = new HashMap<String, Object>();
// here is how I put an object in the Map notice i'm passing coordinates to the constructor:
unitMap.put("1", new Worker(240, 240));
unitMap.put("2", new Worker(240, 240));
现在我需要创建一个方法来检索 HashMap 中的每个对象并从每个对象调用一个方法。这是可能的还是只能直接引用创建的对象。如果是这样,是否有另一种方法可以动态调用类的所有现有实例的方法(换句话说,根据用户输入)?
最佳答案
当然。你可以这样做:
for (Object thing : unitMap.values()) {
// use "thing" here
}
如果你也需要 key ,你可以只拿 key :
for (String key : unitMap.keySet()) {
// use "key" here
}
或者键和值一起:
for (Map.Entry<String, Object> entry : unitMap.entrySet()) {
// use "entry.getKey()" and "entry.getValue()"
}
以上所有情况,map中的每一个entry都是一个一个遍历。所以在循环结束时,您将处理完 map 中的所有条目。
关于Java:使用 HashMap ,检索所有值和调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6366278/