32
32
*/
33
33
public class CompositeItemReader <T > implements ItemStreamReader <T > {
34
34
35
- private final List <ItemStreamReader <T >> delegates ;
35
+ private final List <ItemStreamReader <? extends T >> delegates ;
36
36
37
- private final Iterator <ItemStreamReader <T >> delegatesIterator ;
37
+ private final Iterator <ItemStreamReader <? extends T >> delegatesIterator ;
38
38
39
- private ItemStreamReader <T > currentDelegate ;
39
+ private ItemStreamReader <? extends T > currentDelegate ;
40
40
41
41
/**
42
42
* Create a new {@link CompositeItemReader}.
43
43
* @param delegates the delegate readers to read data
44
44
*/
45
- public CompositeItemReader (List <ItemStreamReader <T >> delegates ) {
45
+ public CompositeItemReader (List <ItemStreamReader <? extends T >> delegates ) {
46
46
this .delegates = delegates ;
47
47
this .delegatesIterator = this .delegates .iterator ();
48
48
this .currentDelegate = this .delegatesIterator .hasNext () ? this .delegatesIterator .next () : null ;
@@ -52,7 +52,7 @@ public CompositeItemReader(List<ItemStreamReader<T>> delegates) {
52
52
// opening resources early for a long time
53
53
@ Override
54
54
public void open (ExecutionContext executionContext ) throws ItemStreamException {
55
- for (ItemStreamReader <T > delegate : delegates ) {
55
+ for (ItemStreamReader <? extends T > delegate : delegates ) {
56
56
delegate .open (executionContext );
57
57
}
58
58
}
@@ -79,7 +79,7 @@ public void update(ExecutionContext executionContext) throws ItemStreamException
79
79
80
80
@ Override
81
81
public void close () throws ItemStreamException {
82
- for (ItemStreamReader <T > delegate : delegates ) {
82
+ for (ItemStreamReader <? extends T > delegate : delegates ) {
83
83
delegate .close ();
84
84
}
85
85
}
0 commit comments