Java Generics - Üst Sınırlı Joker Karakterler

Soru işareti (?) Joker karakteri temsil eder, jeneriklerde bilinmeyen türü temsil eder. Bir tür parametresine geçirilmesine izin verilen tür türlerini kısıtlamak isteyeceğiniz zamanlar olabilir. Örneğin, sayılar üzerinde çalışan bir yöntem, yalnızca Number veya alt sınıflarının örneklerini kabul etmek isteyebilir.

Üst sınırlı bir Wildcard parametresi bildirmek için,? İşaretini, ardından extends anahtar sözcüğünü ve ardından üst sınırını listeleyin.

Misal

Aşağıdaki örnek, bir üst sınır joker karakterini belirtmek için extends'ın nasıl kullanıldığını gösterir.

package com.tutorialspoint;

import java.util.Arrays;
import java.util.List;

public class GenericsTester {

   public static double sum(List<? extends Number> numberlist) {
      double sum = 0.0;
      for (Number n : numberlist) sum += n.doubleValue();
      return sum;
   }

   public static void main(String args[]) {
      List<Integer> integerList = Arrays.asList(1, 2, 3);
      System.out.println("sum = " + sum(integerList));

      List<Double> doubleList = Arrays.asList(1.2, 2.3, 3.5);
      System.out.println("sum = " + sum(doubleList));
   }
}

Bu, aşağıdaki sonucu verecektir -

Çıktı

sum = 6.0
sum = 7.0