Java Generics - Sınırlı Tür Parametreleri

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. Sınırlı tip parametreleri bunun içindir.

Sınırlı bir tür parametresi bildirmek için, tür parametresinin adını, ardından extends anahtar sözcüğünü ve ardından üst sınırını listeleyin.

Misal

Aşağıdaki örnek, extends'in genel anlamda "extends" (sınıflarda olduğu gibi) veya "uygulama" (arabirimlerde olduğu gibi) anlamında nasıl kullanıldığını göstermektedir. Bu örnek, Karşılaştırılabilir üç nesneden en büyüğünü döndürmek için Genel yöntemdir -

public class MaximumTest {
   // determines the largest of three Comparable objects
   
   public static <T extends Comparable<T>> T maximum(T x, T y, T z) {
      T max = x;   // assume x is initially the largest
      
      if(y.compareTo(max) > 0) {
         max = y;   // y is the largest so far
      }
      
      if(z.compareTo(max) > 0) {
         max = z;   // z is the largest now                 
      }
      return max;   // returns the largest object   
   }
   
   public static void main(String args[]) {
      System.out.printf("Max of %d, %d and %d is %d\n\n", 
         3, 4, 5, maximum( 3, 4, 5 ));

      System.out.printf("Max of %.1f,%.1f and %.1f is %.1f\n\n",
         6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ));

      System.out.printf("Max of %s, %s and %s is %s\n","pear",
         "apple", "orange", maximum("pear", "apple", "orange"));
   }
}

Bu, aşağıdaki sonucu verecektir -

Çıktı

Max of 3, 4 and 5 is 5

Max of 6.6,8.8 and 7.7 is 8.8

Max of pear, apple and orange is pear