2017-01-13 4 views
6

スーパータイプの一覧を注入:私はインターフェイスとクラスの両方を使用してみましたAndroidの注釈 - 私はAndroidの注釈を使用して、次の春のコードを達成しようとしています

@Autowired 
public initHandlerList(List<Handler> handlerList) { 
    // Do stuff with the list ... 
} 

ビーン定義:

注入しようとすると
@EBean 
public AbstractHandler implements Handler {} 

:リスト自体はでアノテートされていないので、だから私は推測

Error:(20, 5) error: org.androidannotations.annotations.Bean can only be used on an element annotated with @org.androidannotations.annotations.EBean 

@Bean 
public initHandlersList(List<AbstractHandler> handlersList) { 
    // Do stuff with the list ... 
} 

しかし、常に次のエラーが発生しました@EBean Beanとして使用することはできません... Android Annotatiを使用してこれを実装する方法ons?

ありがとうございます!

+0

これは役に立つかもしれませんhttps://github.com/androidannotations/androidannotations/wiki/Enhance-custom-classes – Boldbayar

+0

@Boldbayarありがとうございますが、私はすでに自分のwikiを読んでいます。私はそれがフレームワークでは不可能だと思いますし、定型コードを書く必要があります。 – Nom1fan

答えて

2

申し訳ありませんが、私の評判は低すぎます。

私はwikiを読んで、メソッドベースの注入の下で私はあなたがどのように豆を注入するのかを見ました。私があなたのコードで見ることができるのは、実際にAbstractHandlerオブジェクトを持つEBeanを作成していますが、@EBeanで注釈が付けられていないListオブジェクトを挿入しようとしている場合は、リスト<を削除してAbstractHandler List実装(ArrayListのような)を拡張して@EBeanで注釈を付けることができます。

@EBean 
public class InjectableArrayList<T> extends ArrayList<T>{} 

これが役立ちます。

+0

こんにちは、答えに感謝します。いいアイデアだったし、試してみました。しかし、それが達成するのは、単純に空の配列リストを注入することです。私が望んでいたのは、Springができるように、AbstractHandlerを継承しているすべてのクラスのインスタンスがすでに格納されているリストをフレームワークに実際に挿入するためのフレームワークです。このフレームワークはSpringほど強力ではないようです。とにかく感謝します。 – Nom1fan

+1

私は、はい、これは要素のないリストを注入します。あなたがコメントしているように、私はこれが実現できるかどうかを説明する文書は見ません。私は注射文書をチェックして、それが何のものもないように見える。おそらく、その時点ではサポートされていない可能性があります。良い一日を。 – Nord

関連する問題