2017-07-27 22 views
0

こんにちは私は春のバッチ複合記述に2つのライターを追加しようとしています。SpringバッチCompositeItemWriterライターのデリゲートを正しく設定する方法

public ItemWriter<MyObject> myWriter(){ 
    ItemWriter<MyObject> myWriter = new myWriter(); 
    return myWriter; 
} 

public ItemWriter<MyObject> myOtherWriter(){ 
    ItemWriter<MyObject> myOtherWriter = new MyOtherWriter(); 
    return myOtherWriter; 
} 

public CompositeItemWriter<MyObject> compositeItemWriter(){ 
    CompositeItemWriter<MyObject> writer = new CompositeItemWriter<MyObject>(); 
    List<ItemWriter<MyObject>> writerList = new ArrayList<ItemWriter<MyObject>>(); 
    writerList.add(myWriter()); 
    writerList.add(myOtherWriter()); 
    writer.setDelegates(writerList); //<-- ERROR HERE 
    return writer; 
} 

以下

The method setDelegates(List<ItemWriter<? super MyObject>>) in the type CompositeItemWriter<MyObject> is not applicable for the arguments (List<ItemWriter<MyObject>>) 

は私のコード私は、XMLを使用していないcompositeitemwritersのいずれかの強力なコード例を見つけることができませんでした:私は言ってエラーを取得しています。私のエラーには、あまり知識がないジェネリック型のパラメータと関係があることがわかります。誰も上記のコードがうまくいかず、おそらくそれをどう解決するのかを説明できますか? Multiple itemwriters in Spring batchこれは私が見つけることができる最も近いですが、それはまた私にエラーを与えるジェネリック型を使用します。

ありがとうございました!私は春のバッチに新しいです。

答えて

0

変更してみ...

List<ItemWriter<MyObject>> writerList = new ArrayList<ItemWriter<MyObject>>(); 

...:

List<ItemWriter<? super MyObject>> writerList = new ArrayList<ItemWriter<? super MyObject>>(); 

CompositeItemWriter#setDelegatesフォームList<ItemWriter<? super T>>でリストを取ります。

spring documentationを参照してください。

関連する問題