11 Ocak 2021 Pazartesi

Generics ve Bounded Type

Giriş 
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