JAVA基础《泛型》

∥☆過路亽.° 提交于 2020-01-15 05:14:19

泛型

/* 
 * <T>主要用于声明泛型方法和泛型类 
 */
<T> T getMapper(Class<T> var1);//声明getMapper方法是泛型方法
<K, V> Map<K, V> selectMap(String var1, Object var2, String var3);
<T> List<T> selectList(String var1);

class Point<T>{// 此处可以随便写标识符号   
    private T x ;        
    private T y ;        
    public void setX(T x){//作为参数  
        this.x = x ;  
    }  
    public void setY(T y){  
        this.y = y ;  
    }  
    public T getX(){//作为返回值  
        return this.x ;  
    }  
    public T getY(){  
        return this.y ;  
    }  
};  
//IntegerPoint使用  
Point<Integer> p = new Point<Integer>() ;   
p.setX(new Integer(100)) ;   
System.out.println(p.getX());    
  
//FloatPoint使用  
Point<Float> p = new Point<Float>() ;   
p.setX(new Float(100.12f)) ;   
System.out.println(p.getX());    
/*
 * <?>表示使用泛型类和泛型方法 
 *  ? 是通配符,泛指所有类型
 *  <? extends List>:表示只接收List或者List的子类
 *  <? super HashMap>:表示只接收HashMap或者HashMap的父类
 */
public  interface Test {
    <T> List<T> getList01(T t);
    List<? extends List> getList02();//
    List<? super HashMap> getList03();
}
//此方法表示给一个什么样的对象的字节码就返回什么一个什么样的对象
public static <T> T getMapper(Class<T> clazz) {
        SqlSession session = MybatisUtil.getAutoCommitSession();
        return session.getMapper(clazz);
    }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!