JAVA基础《泛型》

泛型

/* 
 * <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);
    }
发布了18 篇原创文章 · 获赞 6 · 访问量 1865

猜你喜欢

转载自blog.csdn.net/weixin_43766298/article/details/103745666