2

我试图在 groovy 中使用这种方法,

groupedDocs = reader.selectGroupedDocs(last_update_date.toString()).get();

这是我的“selectGroupedDocs”方法的java代码部分,

private List<Map<String, String>> selectGroupedDocs(String lastUpdateDate) {
            logger.warn("START :: selectGroupedDocs");
            String query = prepareQuery(SELECT_ALL_GROUPED_DOCES_BY_DATE, lastUpdateDate);

            DataStoreQuery.QueryResult result = dataStoreQuery.executeQuery(CMT_GROUPED_DOCS, query);

            List<Map<String, String>> resultMaps = result.getSelectResultAsMapRows().orElse(new ArrayList<>());
            logger.warn("Result Maps :: " + resultMaps);

            logger.warn("END :: selectGroupedDocs");

            return resultMaps;
        }

当我运行它时,我收到以下错误,

groovy.lang.MissingMethodException: No signature of method: java.util.ArrayList.get() is applicable for argument types: () values: []
Possible solutions: get(int), get(int), set(int, java.lang.Object), set(int, java.lang.Object), grep(), grep()
    at org.webharvest.runtime.scripting.GroovyScriptEngine.eval(GroovyScriptEngine.java:138)
    at org.webharvest.runtime.processors.ScriptProcessor.execute(ScriptProcessor.java:74)
    at org.webharvest.runtime.processors.BaseProcessor.run(BaseProcessor.java:127)
    at org.webharvest.runtime.Scraper.execute(Scraper.java:169)
    at org.webharvest.runtime.Scraper.execute(Scraper.java:182)

我究竟做错了什么?

4

1 回答 1

0

如果您希望将列表分配给 groupedDocs,请从下面的行中删除.get()

groupedDocs = reader.selectGroupedDocs(last_update_date.toString()).get();

列表中的 get 方法需要一个参数。如果您尝试将列表中的特定值分配给 groupedDocs,则需要在 get 方法中传递一个索引才能检索它。

例如。 groupedDocs = reader.selectGroupedDocs(last_update_date.toString()).get(1);

于 2019-10-19T07:43:20.263 回答