list 范型
程序员文章站
2022-04-06 15:54:31
...
是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或其子类。
上一篇: python进阶练习之——递归求阶乘
下一篇: Python_时间换算
推荐阅读
-
C#控制台基础 list<>初始化的两种方法
-
java8如何用Stream查List对象某属性是否有重复
-
用PHP实现windows资源管理器风格的树型菜单_PHP
-
List之sort、sorted高级排序-Python3.7 And 算法<七>
-
java泛型中的通配符
-
Java 集合框架之List 的使用(附小游戏练习)
-
PHP使用Redis的List(列表)命令实现消息队列
-
js取float型小数点后两位数的方法_javascript技巧
-
为什么facebook的hiphop要把php转换成了C++而不是把php改成编译型的语言,直接执行编译后的文件不是更快么?
-
Oracle中纯数字的varchar2类型和number类型自动转换