List to Map给出编译错误

时间:2017-08-04 18:00:59

标签: collections java-8 guava

我有以下代码:

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>(){})

如何重写这段代码,以免我遇到这个问题?

1 个答案:

答案 0 :(得分:2)

table.ajax.reload(); 的第一个通用参数必须与Function所拥有的元素类型相匹配。

因此,如果您有ListList<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>>