本文主要是介绍listT 范型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
是java泛型的两种用法:List<T>是泛型方法,List<?>是限制通配符
List<T>一般有两种用途:
1、定义一个通用的泛型方法。
伪代码:
public interface Dao{List<T> getList(){};
}List<String> getStringList(){return dao.getList();//dao是一个实现类实例
}List<Integer> getIntList(){return dao.getList();
}
上面接口的getList方法如果定义成List<?> ,后面就会报错。‘
2、限制方法的参数之间或参数和返回结果之间的关系。
List<T> getList<T param1,T param2>
这样可以限制返回结果的类型以及两个参数的类型一致。
List<?>一般就是在泛型起一个限制作用。
伪代码:
public Class Fruit(){}public Class Apple extends Fruit(){}public void test(? extends Fruit){};test(new Fruit());
test(new Apple());
test(new String()); //这个就会报错
这样可以现在test方法的参数必须是Fruit或其子类。
List<T>一般有两种用途:
1、定义一个通用的泛型方法。
伪代码:
public interface Dao{List<T> getList(){};
}List<String> getStringList(){return dao.getList();//dao是一个实现类实例
}List<Integer> getIntList(){return dao.getList();
}
上面接口的getList方法如果定义成List<?> ,后面就会报错。‘
2、限制方法的参数之间或参数和返回结果之间的关系。
List<T> getList<T param1,T param2>
这样可以限制返回结果的类型以及两个参数的类型一致。
List<?>一般就是在泛型起一个限制作用。
伪代码:
public Class Fruit(){}public Class Apple extends Fruit(){}public void test(? extends Fruit){};test(new Fruit());
test(new Apple());
test(new String()); //这个就会报错
这样可以现在test方法的参数必须是Fruit或其子类。
这篇关于listT 范型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!