将地图传递给IteratorItemReader

时间:2018-06-21 11:53:06

标签: java spring generics

我一直很难弄清楚如何将gather(df,var,val,-year) %>% inner_join(curationdf,"year") %>% filter((var==v1)|(var==v2)) %>% mutate(var=ifelse(var==v1,"v1","v2")) %>% spread(var,val) 传递给Spring的IteratorItemReader

基本上,这就是我从远程API检索数据的地方:

Map

有问题的部分是当我尝试将此数据传递到Map<Structure, List<Structure>> data = getData();

IteratorItemReader;

我得到的错误是:deleg = new IteratorItemReader<>(data)。以前,我只是将Cannot infer argument(unable to resolve constructor)传递给ArrayList,所以播放效果很好。因此,现在有了IteratorItemReader时,由于我对Java没有真正的经验,所以我不确定该怎么做。任何帮助表示赞赏。在调用Map的地方,我真的没有空间进行数据处理,因此我需要找到一种方法来将其传递给IteratorIteamReader,然后再在代码的不同部分处理数据。

2 个答案:

答案 0 :(得分:1)

地图不是可迭代的,但EntrySet是。

使用此-

IteratorItemReader<Entry<Structure, List<Structure>>> deleg = new IteratorItemReader<>(data.entrySet());
System.out.println(deleg.read());

答案 1 :(得分:1)

IteratorItemReader仅接受实现Iterable的参数。一个Map不可迭代,但是例如Map的entrySet是。

deleg = new IteratorItemReader<>(data.entrySet());