package generic;
import java.io.Serializable;
import java.util.Comparator;
public class GeneriThree {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
/**
* 类型擦除
*
* 原始类型:
* 删除类型参数的泛型类型名。
*
* 擦除类型变量并替换为限定类型(无限定的变量用Object)
*/
//Pair<T> 的原始类型如下
class Pair{
private Object first;
private Object second;
public Object getFirst() {
return first;
}
public void setFirst(Object first) {
this.first = first;
}
public Object getSecond() {
return second;
}
public void setSecond(Object second) {
this.second = second;
}
}
//再如:原始类型
/*class Interval<T extends Comparable<T> & Serializable> implements Serializable{
private static final long serialVersionUID = 1L;
private T low;
private T upper;
public Interval(T first,T second){
if (first.compareTo(second)<=0) {
low = first;
upper = second;
}
}
}*/
//限定类型
class Interval implements Serializable{
private static final long serialVersionUID = 1L;
private Comparable low;
private Comparable upper;
public Interval(Comparable first,Comparable second){
if (first.compareTo(second)<=0) {
low = first;
upper = second;
}
}
}
}