Java jOOQ生成的类的多态性发生了什么?
让我们从以下方面进行查询: 选择条件步骤查询=创建 .selectAUTHOR.LASTNAME.asAuthorName 从…起 BOOK.leftOuterJoinBOOK\u AUTHOR.onBOOK.ID.eqBOOK\u AUTHOR.BOOKID .leftOuterJoinAUTHOR.onAUTHOR.ID.eqBOOK\u AUTHOR.AUTHORID .whereBOOK.ID.eq1 ; //什么时候 结果=query.fetch; 如果我尝试用SelectConditionStep替换SelectConditionStep,我会 不兼容的类型 必需:选择ConditionStep 找到:选择条件步骤 然而 包org.jooq; 导入javax.annotation.Generated; /** *阶数为1的记录的模型类型 * *@见第1行 *@作者卢卡斯·埃德 */ @generated该类是使用jOOQ工具生成的 公共接口Record1扩展了记录{…} 所以。。。有什么好处 除非我遗漏了一些非常明显的东西,否则我不应该被允许将Record1的实例视为记录吗 是的,我开始问我自己,我需要检查我是否完全精神正常:那只是 这也不会编译,并显示相同的错误消息:Java jOOQ生成的类的多态性发生了什么?,java,generics,inheritance,polymorphism,jooq,Java,Generics,Inheritance,Polymorphism,Jooq,让我们从以下方面进行查询: 选择条件步骤查询=创建 .selectAUTHOR.LASTNAME.asAuthorName 从…起 BOOK.leftOuterJoinBOOK\u AUTHOR.onBOOK.ID.eqBOOK\u AUTHOR.BOOKID .leftOuterJoinAUTHOR.onAUTHOR.ID.eqBOOK\u AUTHOR.AUTHORID .whereBOOK.ID.eq1 ; //什么时候 结果=query.fetch; 如果我尝试用SelectCondit
ArrayList<Animal> x = new ArrayList<Dog>();
ArrayList<List<String>> x = new ArrayList<ArrayList<String>>();
您可能需要键入类似SelectConditionStep的变量,并使用通配符为
虽然您的具体问题的正确答案已经由给出了,但我相信您想要做的只是不详细说明这个中间类型的整个类型签名,因为您不需要它,而且它很乏味。您可以使用通配符:
选择条件步骤查询=。。。;
结果=query.fetch;
因为在整个jOOQ API中,类型是以记录为界的,所以这个通配符仍然隐式地以记录为界,因此原则上,上述内容与以下内容隐式相同:
改为选择条件步骤或结果查询:
选择查询=。。。;
结果=query.fetch;
令人惊讶的是,当我有一段时间没有使用它们时,我总是忘记一些非常基本的东西非常感谢。