1 泛型方法
2 泛型类
class GenericMethodTest { // 泛型方法 printArray public static <E> void printArray(E[] inputArray) { // 输出数组元素 for (E element : inputArray) { System.out.printf("%s ", element); } System.out.println(); } // 比较三个值并返回最大值 public static <T extends Comparable<T>> T maximum(T x, T y, T z) { T max = x; // 假设x是初始最大值 if (y.compareTo(max) > 0) { max = y; // y 更大 } if (z.compareTo(max) > 0) { max = z; // 现在 z 更大 } return max; // 返回最大对象 } } class Box<T> { private T t; public void add(T t) { this.t = t; } public T get() { return t; } }
使用 T extends Comparable<T> 限定 T 是 Comparable的实现
总结一下:
1 范型类必须在类名后面添加 <T>
2 范型方法必须使用 <T> 修饰方法
其实很明显,T 无论在泛型类还是泛型方法而言更像是一个修饰符,当然使用的像是闭包内局部生效的的java class对象;
后面在定义的泛型类、function内部可以使用这个 java type 去定义其他变量类型