パブロ:
(私はいくつかのクラスが実装するインターフェイスにデフォルトのメソッドを追加する必要がありますが、私のIDEは不平を言いますbean may not have been initialized
)。コードは次のようになります。
public interface IValidator {
MyValidationBean beanToBeAutowired;
...
default Boolean doSomeNewValidations(){
return beanToBeAutowired.doSomeNewValidations();
}
}
それは、インタフェースにオートワイヤリングが許可されていないか、何かの間違ったコードでありますされるだけということ?使用する@Component
インターフェイスにしても、違いはありません。
私はむしろ代わりに、抽象クラスを使用してのこの設計を維持するだろう。
shazin:
インターフェイスに変数を追加すると、Javaで可能ではありません。これは、デフォルトのAによるであろうpublic static final
定数。以下のいずれかを行う必要がありますので:
MyValidationBean beanToBeAutowired = new MyValidationBeanImpl();
または以下:
MyValidationBean beanToBeAutowired();
default Boolean doSomeNewValidations(){
return beanToBeAutowired().doSomeNewValidations();
}
そして、あなたは無効にすることができbeanToBeAutowired
、実装クラスにメソッドを。