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