Groovy调用Java方法报MissingMethodException问题排查求助
解决Groovy调用Java方法时的
MissingMethodException错误 你遇到的问题根源非常明确:你在Groovy代码里多调用了一个不必要的.get()方法。
咱们来拆解下问题细节:
- 你的Java方法
selectGroupedDocs返回类型是List<Map<String, String>>(实际返回的是ArrayList实例),它本身就是一个完整的列表对象,完全不需要额外调用无参的.get()方法。 - 无参的
.get()是Optional类专属的方法,用来从可选值中提取内容,但你的Java方法并没有返回Optional类型。所以当你对ArrayList调用无参.get()时,就会触发MissingMethodException——因为ArrayList只有带索引参数的get(int)方法,根本不存在无参版本。
修正后的Groovy代码
只需要去掉多余的.get()即可正常运行:
groupedDocs = reader.selectGroupedDocs(last_update_date.toString());
另外补充下:你的Java方法内部已经通过.orElse(new ArrayList<>())保证了一定会返回一个非空列表,所以直接接收返回值就可以放心使用了。
内容的提问来源于stack exchange,提问作者Sachika Sandeepa
相关产品推荐
相关产品推荐

