我认为我在这里使用了非常标准的语法:
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/