8-5 泛型类型擦除

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;
            }
        }
    }
    
    
    
}
原文地址:https://www.cnblogs.com/lxh520/p/8326623.html