【发布时间】:2011-03-13 02:17:39
【问题描述】:
我想找到一种方法来获取下面的对象特定例程并将其抽象为一个方法,您可以传递一个类、列表和字段名来获取一个 Map。 如果我能获得关于使用的模式的一般指针 or 等,这可以让我朝着正确的方向开始。
Map<String,Role> mapped_roles = new HashMap<String,Role>();
List<Role> p_roles = (List<Role>) c.list();
for (Role el : p_roles) {
mapped_roles.put(el.getName(), el);
}
到这个? (伪代码)
Map<String,?> MapMe(Class clz, Collection list, String methodName)
Map<String,?> map = new HashMap<String,?>();
for (clz el : list) {
map.put(el.methodName(), el);
}
有可能吗?
【问题讨论】:
-
@Aircule:在这里可以使用旧的仿函数 hack。
-
我不明白。您想要一个
x事物的列表并将其转换为一个映射,其中键是事物名称,值是事物? -
对,key是传过来的方法返回的字符串值(对象Person有方法name(),人名成为key),value就是对象本身。比较字符串比手头有一个对象进行比较要容易得多。