Пример

Есть 2 массива: интовый и строчный. Чтобы их вывести на экран приходится создавать 2 отдельных метода и туда передавать массивы. Огромный минус в том, что если будут массивы типа char или double, то придется создавать новые методы

 public class Generic {
 public static void main(String[] args) {
 String[] sArray = {"a", "b", "c"};
 Integer[] iArray = {1, 2, 3};
 printArray(iArray);
 printArray(sArray);
 }

public static void printArray(Integer[] i) {
 for (Integer x : i)
 System.out.print(x);
 System.out.println();
 }

public static void printArray(String[] i) {
 for (String x : i)
 System.out.print(x);
 System.out.println();
 }
 }

Решим эту проблему с использованием generics:

 package extends1;

public class Generic {
 public static void main(String[] args) {
 String[] sArray = { "a", "b", "c" };
 Integer[] iArray = { 1, 2, 3 };
 printArray(iArray);
 printArray(sArray);
 }

public static <T> void printArray(T[] i) {
 for (T x : i)
 System.out.print(x);
 System.out.println();
 }

} 

Теперь у нас один метод, который принимает на вход массив T. Благодаря этому мы уменьшили код в программе. И если надо будет печатать, например, массив типа char, то нам НЕ нужно будет создавать отдельный метод

Реклама