Intellij Idea 为什么我的lambda参数不能被识别为ResultSet?

jdg4fx2g  于 2023-04-19  发布在  其他
关注(0)|答案(1)|浏览(132)

我正在尝试构建一个transformer函数的静态库。poiTransformer接受一个ResultSet并返回一个Poi示例。然而,IntelliJ告诉我有错误。
我附上了我尝试写这篇文章的三种不同方法的屏幕截图。#1和#3每个都抛出“Cannot resolve method 'getMetaData' in 'Object'"。#2抛出“Incompatible parameter types in lambda expression:需要Object,但找到ResultSet
我不明白IDE为什么不将rs识别为ResultSet。请提供帮助。

[开始编辑]

Unamelled的解决方案是将Function签名更改为:static Function<ResultSet, LinkedHashMap<String, PoiPin>> poiTransformer()

[结束编辑]

qjp7pelc

qjp7pelc1#

你需要正确地输入Function。避免使用原始类型;在您的例子中,它被推断为Function<Object, Object>,这使得rs成为Object

static Function<ResultSet, LinkedHashMap<String, PoiPin>> poiTransformer() {
   // ...
}

相关问题