java - fetch 返回不会转换为 Record 的记录类型

标签 java sql generics jooq

我认为我在这里使用了非常标准的语法:

Result<Record> = [DSLContext].selectDistinct(...).fetch();

但它不会编译,因为上面返回类型的记录对象

Result<Record4<T1, T2, ...>

这是一个自动生成的接口(interface),它是 Record 的子接口(interface),但编译器仍然不满意

我想通常java会将其视为隐式转换?我似乎不应该做任何显式的转换...

提示?谢谢

最佳答案

如果 List<Banana>List<Fruit> ,您可以将苹果添加到 List<Banana> :

List<Banana> bananaList = new ArrayList<>();
List<Fruit> fruitList = bananaList;
fruitList.add(new Apple());

因此,它会破坏泛型类型的类型安全性。

你可能想要

Result<? extends Record> result = [DSLContext].selectDistinct(...).fetch();

关于java - fetch 返回不会转换为 Record 的记录类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20726076/

相关文章:

sql - PostgreSQL 中的 "null value in column violates not-null constraint"错误

sql - 如何通过查看过去的签到时间来区分白类和夜类?

c# - 为什么这个泛型类会产生编译器错误?

generics - Newtype 作为 Rust 中的泛型参数?

java - 弦乐与表演

java - Cygwin 上的 tdbloader : Gettging FileNotFoundException: d:\cygdrive\d\. ...\node2id.idn

java - setOnSucceeded 未调用

java - 创建新对象是否有助于防止静态方法内的并发问题?

mysql - 获取最新序列号的 MAX 记录

c# - 将类似的方法移动到通用实现中