java - 如何修复 groovy.lang.MissingMethodException:没有方法签名:java.util.ArrayList.get() 适用于参数类型:() 值:[]
问题描述
我试图在 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)
我究竟做错了什么?
解决方案
如果您希望将列表分配给 groupedDocs,请从下面的行中删除.get()
groupedDocs = reader.selectGroupedDocs(last_update_date.toString()).get();
列表中的 get 方法需要一个参数。如果您尝试将列表中的特定值分配给 groupedDocs,则需要在 get 方法中传递一个索引才能检索它。
例如。
groupedDocs = reader.selectGroupedDocs(last_update_date.toString()).get(1);
推荐阅读
- android - 获取 ImageButton 中使用的图像名称
- r - 为什么使用 grid_arrange 时网格/轴线会消失?
- asp.net - SameSite=None w/ IE11 中的安全中断 iFrame
- azure - Azure DevOps 变量组未在 Azure 函数配置中应用
- django - django db 和 sqlite 使用不同的参数样式?
- csv - 谷歌云存储 + CDN + CNAME 配置
- .net - VueJS从孩子修改父变量
- java - 遍历 Mat 时出现 NullpointerException
- c++ - 在 C++ 中使用 return 进行锻炼
- php - 如何使用带有中间件的条件句来显示树形菜单 Laravel