何がjOOQで生成されたクラスのための多型に起こったのか?

User1291:

さんからのクエリを見てみましょう、私の他の質問

SelectConditionStep<Record1<String>> query = create
        .select(AUTHOR.LASTNAME.as("AuthorName"))
            .from(
                    (
                            BOOK.leftOuterJoin(BOOK_AUTHOR).on(BOOK.ID.eq(BOOK_AUTHOR.BOOKID))
                    ).leftOuterJoin(AUTHOR).on(AUTHOR.ID.eq(BOOK_AUTHOR.AUTHORID))
            )
            .where(BOOK.ID.eq(1))
        ;

//when
Result<Record1<String>> result = query.fetch();

私は交換してみた場合SelectConditionStep<Record1<String>>SelectConditionStep<Record>、I GET

互換性のないタイプ。

必須: SelectConditionStep<org.jooq.Record>

見つかりました: SelectConditionStep<org.jooq.Record1<java.lang.String>>

そして、まだ...

package org.jooq;

import javax.annotation.Generated;

/**
 * A model type for a records with degree <code>1</code>
 *
 * @see Row1
 * @author Lukas Eder
 */
@Generated("This class was generated using jOOQ-tools")
public interface Record1<T1> extends Record {...}

そう...何ができますか?

私は非常に何かを明らかに不足していない限り、私はの御馳走インスタンスに許されるべきではないRecord1彼らがいたかのようにRecordS?

(:はい、私は完全に精神的ではないよ、私がチェックするために必要なポイントに自分自身に疑問を始めhttps://ideone.com/0O4mOU

ティロ:

それはちょうどあるジェネリックはJavaでどのように働きますか

これは、同じエラーメッセージが表示されて、いずれかのコンパイルされません。

ArrayList<Animal> x = new ArrayList<Dog>(); 
ArrayList<List<String>> x = new ArrayList<ArrayList<String>>();

あなたのようなあなたの変数に何かを入力することもできますSelectConditionStep<? extends Record> queryこのように、あなたは、任意のサブクラスがあることをコンパイラに伝えるRecord(そうでない場合ではないです)受け入れ可能です。あなたがそれを行う場合は、取得するResult<? extends Record>列の数や形状はいえ、もはや何かの型保証され、最後に背中を。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=118133&siteId=1