我正在创建JOOQ TableRecord的接口(interface)
<R extends TableRecord<R>>
谁能解释以上内容?
谢谢
最佳答案
它表示类型R的类,它实现了TableRecord<R>
接口(interface)TableRecord<R>
表示接口(interface)绑定(bind)到相同的类型R。
一个例子是一个像这样的类:
public class Bla implements TableRecord<Bla>
我承认这似乎有些奇怪,但是Java泛型并没有真正区分
extends
和implements
,这引起了一些困惑。至于为什么要使用这个确切的定义,我对上下文的了解还不足以确切了解它为什么有意义,但这可能是由于接口(interface)上的方法签名返回了
R
类型的对象(认为是工厂):public R createTableRecord(...);