2

AspectJとコンパイル時のウィービングでEclipseJunoを使用していますが、次のシナリオがあると、この厄介なエラーメッセージが表示されます。

@Configurable(preConstruction = true)
public abstract class AbstractEntity {  

    @Resource private Service service;

    public AbstractEntity () {
         service.doSomething();
    }
}

public class Response extends AbstractEntity {  

    public Response() {
        super();
    }
}

マーカーは[問題]タブには表示されません。応答のクラス宣言に赤いxマーカーが表示されるだけです。クリーニングは何も変更しませんが、@ ConfigurableアノテーションをResponseクラスに移動し、AbstractEntityから削除すると、エラーマーカーは消えますが、スーパーコンストラクターが挿入されたサービスにアクセスしようとするとNPEが発生します。

このエラーマーカーは実際には何も壊さないことにも言及することが重要です。コードをそのままにしておくと、すべてが正常に機能するので、クラス(およびAbstractEntityを拡張するクラス)を開くたびに常にそのエラーマーカーが表示されます。

このメッセージの表示を停止する方法はありますか?CTWは、このメッセージの原因となるコンストラクタ階層を舞台裏で変更していますか?

4

0 に答える 0