【发布时间】:2017-08-04 18:00:58
【问题描述】:
我有以下代码:
List<Object> result = new ArrayList<Object>();
//Object is actually a Map<String,Object>
return Maps.uniqueIndex(result, new Function<Map<String, Object>, Long>() {
@Override
public Long apply(Map<String, Object> input) {
return (Long) input.remove("id");
}
});
我得到编译错误。
Maps 类型中的方法
uniqueIndex(Iterable<V>, Function<? super V,K>)不适用于参数(List, new Function<Map<String,Object>,Long>(){})。
如何重写这段代码以免陷入这个问题?
【问题讨论】:
-
那段代码应该做什么,似乎没有多大意义。
-
转换列表以映射和过滤列表。
-
这还不清楚。请显示输入+输出的示例。
-
顺便说一句,我在这里看到的最大的禁忌是从 Object 到 Long 的演员表和
List<Object显然只包含Longs 但没有以明确的方式输入。
标签: collections java-8 guava