我有以下代码:
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");
}
});
我收到编译错误。
地图类型中的方法
uniqueIndex(Iterable<V>, Function<? super V,K>)
不适用于参数(List, new Function<Map<String,Object>,Long>(){})
。
如何重写这段代码,以免我遇到这个问题?
答案 0 :(得分:2)
table.ajax.reload();
的第一个通用参数必须与Function
所拥有的元素类型相匹配。
因此,如果您有List
,List<T>
将用于处理来自Function
的元素,因此它必须是List
。< / p>
所以,在你的情况下:
Function<T, WHATEVER>
如果您想将List<Object> result = new ArrayList<>();
Maps.uniqueIndex(result, new Function<Object, WHATEVER>() {
@Nullable
@Override
public WHATEVER apply(@Nullable Object s) {
return null; // do whatever you want here
}
});
存储在Map<String,Object>
中,为什么不使用List
?
List<Map<String,Object>>