使用Guava将Map转换为对象?

时间:2013-04-01 15:33:04

标签: java object map guava

使用Guava,是否可以将Map转换为包含Map的键和值的对象的Set或List?例如。给出类似

的东西
class MyEntry {
    public String key;
    public String value;
}

Map<String,String> theMap = new Map<String,String>();

我在Guava中遗漏了这样的东西/没找到它:

Set<MyEntry> myEntries = Maps.transform(theMap, transformFunction<<Map<String,String>, MyEntry>);

显然手动这样做并不难,我仍然想知道我是否错过了什么,而番石榴真的不支持这样的事情?

感谢任何提示!

1 个答案:

答案 0 :(得分:4)

与番石榴最接近的事情就像是

Collection<MyEntry> myEntries = Collections2.transform(map.entrySet(), function);

这只是entrySet的{​​{1}}上的正常转换,map的类型为function

Guava由于各种原因无法提供Function<Map.Entry<String, String>, MyEntry> - 它不能保证函数是单射的,它不具有与函数相反的等等。如果你需要{{1那么你最好只做手动循环。