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);
}
}