как исправить groovy.lang.MissingMethodException: нет сигнатуры метода: java.util.ArrayList.get () применим для типов аргументов: () значения: [] - PullRequest
1 голос
/ 19 октября 2019

Я пытаюсь использовать этот метод в groovy,

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

И это моя часть кода Java для метода "selectGroupedDocs",

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)

Что я делаю не так?

1 Ответ

0 голосов
/ 19 октября 2019

Если вы хотите, чтобы список был назначен для groupedDocs, удалите .get () из строки ниже

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

Метод get всписок ожидает аргумент. Если вы пытаетесь присвоить определенное значение в списке для groupedDocs, вам нужно передать индекс в метод get, чтобы получить его.

Например. groupedDocs = reader.selectGroupedDocs(last_update_date.toString()).get(1);

...