Java 表<;R>;及<;桌面式>;在约克

Java 表<;R>;及<;桌面式>;在约克,java,sql,jooq,Java,Sql,Jooq,有人能简单地告诉我这两个对象之间的区别,以及为什么一个对象可能会被用于另一个对象吗?nutshell,TL;DR版本: 您应该只参考表。jOOQ的内部也使用了TableLike 详细说明: jOOQ的DSL充满了小标记接口,这些接口只是因为Java语言缺乏对联合类型的支持。例如,在SQL语法中,当您将表格(如创建表格x…)和选择(如选择*从…)放在FROM子句中时,它们是相同的东西 在“理想”Java语言中,FROM子句声明如下: interface SelectFromStep { S

有人能简单地告诉我这两个对象之间的区别,以及为什么一个对象可能会被用于另一个对象吗?

nutshell,TL;DR版本: 您应该只参考
。jOOQ的内部也使用了
TableLike

详细说明: jOOQ的DSL充满了小标记接口,这些接口只是因为Java语言缺乏对联合类型的支持。例如,在SQL语法中,当您将
表格
(如
创建表格x…
)和
选择
(如
选择*从…
)放在
FROM
子句中时,它们是相同的东西

在“理想”Java语言中,
FROM
子句声明如下:

interface SelectFromStep {
    SelectWhereStep from(Table | Select tableReference);
}
因为这是不可能的,而且当(ab)使用像jOOQ这样的泛型时,重载和泛型类型擦除是一个很大的痛苦来源,所以jOOQ有这些标记接口。Like
TableLike
,它是
Table
Select
的超级类型

因此,它仅作为jooqdsl中的方法参数类型,而不是作为用户对您来说很重要