コンパイラは、オーバーライドされたメソッドのロンボクゲッターを認識しません

pal0man3gra:

我々はインターフェイスを持っていると仮定するとTestInterface、我々は変更できないことを、外部のアーティファクトに:

public interface TestInterface {

    Boolean isTest();
    //more getter and setter methods
}

そしてより多くのメンバーと、このインタフェースの実装は、親インターフェースに対応します。私は、次のクラスのコンパイルを行うために、実際のゲッターメソッドを追加する必要がありますので、ロンボクの生成ゲッター/セッターは、コンパイラによって認識されません。

@Getter
@Setter
public class TestImplementation implements TestInterface {

    Boolean test;
    //more members
}

コンパイルエラーは、インターフェースのメソッドが実装されていないときに取得標準誤差です。

my.package.TestImplementationは抽象的ではなく、my.package.TestInterfaceで抽象メソッドisTest()をオーバーライドしません

(ロンボク島で生成される)ゲッターの通常の呼び出しがコンパイルされている理由ロンボクのゲッターとセッターは、コンパイル時間後に生成されたとすると、私は理解していません。

tobias_k:

問題は、フィールドのことのようですBoolean test、ロンボク島は、メソッドが生成されますBoolean getTest()、代わりのBoolean isTest()インターフェースで必要とされます。プロパティがある場合にのみboolean test、あなたが得るboolean isTest()方法を、その後戻り値の型は、インターフェイスと一致していません。

だから、実装周りに方法はないように思えるisTest方法を自分で。

おすすめ

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