汎用インタフェースでコンパイルエラーが発生しているようです。目標は、テストクラスで使用するインタフェースを作成して、ドメインクラスの共通メソッドと生成されたDTOクラスを定義することです。私はいくつかの掘り下げを行いました。私が今までに見つけた答えは、私がしようとしていることには当てはまりません。ほとんどの回答はこれに戻ります:class not within type boundsまたはここではオプションではないワイルドカードを使用することをお勧めします。Java汎用インタフェース '型引数が境界内にない'エラー
私がコンパイルしようとすると、私は次のエラーを取得:
class SubCollectionDto
implements ISubCollection
class BrandDto<T extends SubCollectionDto>
implements IBrand<T>
:生成されたDTOクラスがどのように見える
interface IBrand<T extends ISubCollection>
interface ISubCollection
class Brand<T extends SubCollection>
extends Entity
implements IBrand<T>
class SubCollection
extends Entity
implements ISubCollection
:
[uberCompile] BrandDto.java:10: error: type argument T#1 is not within bounds of type-variable T#2
[uberCompile] public class BrandDto<T extends SubCollectionDto> implements IBrand<T> {
[uberCompile]
[uberCompile] where T#1,T#2 are type-variables:
[uberCompile] T#1 extends SubCollectionDto declared in class BrandDto
[uberCompile] T#2 extends ISubCollection declared in interface IBrand
私のクラスの構造は次のようになります
私はここで間違っていることを理解しようとしているのです。どんな助けでも大歓迎です。
あなたのクラスのボディを取り除くことはできますか?それらは問題に無関係であり、小さな画面で読むことが不可能になります。 –
1.8でうまくコンパイルできます。 – tsolakp
私は現在違いがあれば1.7を使用しています。奇妙なことは、私は日食からどんな誤りも得られないということです。私はantを使ってコンパイルするとエラーになります – pbuchheit