Java Jenerikleri - Yöntemler
Farklı türlerdeki argümanlarla çağrılabilen tek bir genel yöntem bildirimi yazabilirsiniz. Genel yönteme iletilen argüman türlerine bağlı olarak, derleyici her yöntem çağrısını uygun şekilde işler. Genel Yöntemleri tanımlayan kurallar aşağıdadır -
Tüm genel yöntem bildirimleri, yöntemin dönüş türünden (sonraki örnekte <E>) önce gelen açılı ayraçlarla (<ve>) ayrılmış bir tür parametresi bölümüne sahiptir.
Her tür parametresi bölümü, virgülle ayrılmış bir veya daha fazla tür parametresi içerir. Tür değişkeni olarak da bilinen bir tür parametresi, genel bir tür adı belirten bir tanımlayıcıdır.
Tür parametreleri, dönüş türünü bildirmek ve gerçek tür bağımsız değişkenleri olarak bilinen genel yönteme iletilen bağımsız değişkenlerin türleri için yer tutucu görevi görmek için kullanılabilir.
Jenerik bir yöntemin gövdesi, diğer herhangi bir yönteminki gibi bildirilir. Tür parametrelerinin ilkel türleri (int, double ve char gibi) değil, yalnızca başvuru türlerini temsil edebileceğini unutmayın.
Misal
Aşağıdaki örnek, tek bir Genel yöntem kullanarak farklı türden bir diziyi nasıl yazdırabileceğimizi göstermektedir -
public class GenericMethodTest {
// generic method printArray
public static < E > void printArray( E[] inputArray ) {
// Display array elements
for(E element : inputArray) {
System.out.printf("%s ", element);
}
System.out.println();
}
public static void main(String args[]) {
// Create arrays of Integer, Double and Character
Integer[] intArray = { 1, 2, 3, 4, 5 };
Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };
Character[] charArray = { 'H', 'E', 'L', 'L', 'O' };
System.out.println("Array integerArray contains:");
printArray(intArray); // pass an Integer array
System.out.println("\nArray doubleArray contains:");
printArray(doubleArray); // pass a Double array
System.out.println("\nArray characterArray contains:");
printArray(charArray); // pass a Character array
}
}
Bu, aşağıdaki sonucu verecektir -
Çıktı
Array integerArray contains:
1 2 3 4 5
Array doubleArray contains:
1.1 2.2 3.3 4.4
Array characterArray contains:
H E L L O