2017-08-16 4 views
3

私は高さの抽象レベルを作りたいと思っています。私はジェネリックで親を拡張している子に、より一般的な型を追加する

public abstract class AbstractController 

私は

別の抽象クラスの親としてそれを使用したい

public abstract class CrudRepositoryDtoConverter<R extends CrudRepository<E, Integer>, E, D> implements CrudDTO<D> 

を持って、私はこの1つはコンパイルできない、成功せず、例えば

public abstract class AbstractController<K extends CrudRepositoryDtoConverter<R extends CrudRepository<E, Integer>, E, D>> { 
    @Autowired 
    private K repository; 

} 

を倍数の組み合わせを試してみました、ジェネリック型の構文が見つかりません、間違っていますか?私のアイデアは可能ですか?

+0

あなたuは私の一日行わ<[...]拡張し、E、D、R K>を – assylias

+0

を定義する必要があり、おかげでたくさん –

答えて

4

これは非常に複雑な定義ですが、あなたが本当にそれを必要とする場合、以下のように、あなたはそれを書くことができます。

abstract class AbstractController<R extends CrudRepository<E, Integer>, E, D, K extends CrudRepositoryDtoConverter<R, E, D>> { 

} 

ご覧のとおり、REDはのジェネリック型パラメータとして宣言する必要がありますAbstractControllerを参照してください。K extends CrudRepositoryDtoConverter<R, E, D>を参照してください。

+0

uは意味E、RおよびD –

+0

あなたはあなたがしている歓迎 – Eran

+0

だ@Romainそうです、それはかなり複雑です。 –

関連する問題