Пример. У нас есть несколько массивов разных типов(String, Character, Double). Мы хотим сделать метод printArray, который печатет ТОЛЬКО String и Character

 public class Generic {
 public static void main(String[] args) {

String[] sArray = { "a1", "b1", "c1" };
 Character[] cArray = { 'a', 'b', 'c' };
 Double[] dArray = { 1.0, 2.87, 3.87 };

printArray(sArray);
 printArray(cArray);

//будет эксепшн, т.к. массив dArray типа Double[]
 printArray(dArray);

}

public static <T> void printArray(T[] t) {
 boolean isStringType = t instanceof String[];
 boolean isIntegerType = t instanceof Character[];
 if (!isStringType && !isIntegerType) {
 throw new IllegalArgumentException(
 "Type must be String or Character!");
 }

for (T x : t)
 System.out.print(x);
 System.out.println();

}

} 
Реклама