5

JOOQ TableRecordのインターフェースを作成しています

<R extends TableRecord<R>> 

上記の行を説明できる人はいますか?

ありがとう

4

2 に答える 2

7

インターフェースを実装するタイプRのクラスを意味しますTableRecord<R>

TableRecord<R>インターフェイスが同じ型 R にバインドされていることを意味します。

例は次のようなクラスです。

public class Bla implements TableRecord<Bla>

これは少し奇妙に思えるかもしれませんが、Java ジェネリックは と を実際には区別しないextendsためimplements、混乱が生じます。

この正確な定義の理由については、コンテキストについて十分に理解していないため、それが理にかなっている理由を正確に確認できませんが、タイプのオブジェクトを返すインターフェイスのメソッド シグネチャが原因である可能性がありますR(Factory を考えてください)。

public R createTableRecord(...);
于 2013-09-19T10:23:38.040 に答える
4
class SomeClass<R extends TableRecord<R>>

パラメータの型Rがサブクラスでなければならないことの意味は何ですかTableRecord <R>。つまり、クラスを使用する必要があります

class Foo extends TableRecord <Foo>

クラスを定義するためのパラメーターとしてSomeClass

于 2013-09-19T10:26:44.720 に答える