Eğer liste hem dolaşılacak hem de eklenecekse wildcard kullanılmaması gerekir.
Örnek
Şöyle yaparız. count metodu listeye yeni eleman ekler, sum ise listeyi dolaşır. Dolayısıyla sadece Collection<Number> şeklinde kullanılır.
public static double sumCount(Collection<Number> nums, int n) {
count(nums, n);
return sum(nums);
}
Örnek - İçerideki Generic tip
Şöyle yaparız. Burada RandomizerEntry sınıfının kendisi de Generic tip. Dolayısıyla generic tipi de dışarından geçmek gerekiyor.
public class RandomizedWrapper<T>{
final int upperBound = 100;
final List<RandomizerEntry<T>> randomizeList;
Map<Integer, RandomizerEntry<T>> randomizerMap;
public RandomizedWrapper(final List<RandomizerEntry<T>> randomizeList) {
this.randomizeList = randomizeList;
this.randomizerMap = new HashMap<>();
}
public void create(){
List<RandomizerEntry<Integer>> randomizerList = new ArrayList<>();
//stuff here
RandomizedWrapper wrapper = new RandomizedWrapper(randomizerList);//OK
}
}
Hiç yorum yok:
Yorum Gönder