泛型
/*
* <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);
}
来源:CSDN
作者:weixin_43766298
链接:https://blog.csdn.net/weixin_43766298/article/details/103745666