package generic; import java.io.Serializable; public class GenericTwo<T> { private T min; private T max; public GenericTwo(T min, T max) { super(); this.min = min; this.max = max; } public static void main(String[] args) { // TODO Auto-generated method stub } /** * T extends BoundTying T是绑定类型的子类型 * T和绑定类型可以是接口或者类 * 一个类型或者通配符有多个限定,用&分开 * @param a * @return */ public static < T extends Comparable<T> & Serializable > GenericTwo<T> minMax(T[] a){ if (a == null || a.length == 0) { return null; } T min = a[0]; T max = a[0]; for (int i = 0; i < a.length; i++) { if (min.compareTo(a[i])>0) { min = a[i]; } if (max.compareTo(a[i])<0) { max = a[i]; } } return new GenericTwo<T>(min, max); } }