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