泛型
来源:互联网 发布:必赢客软件 编辑:程序博客网 时间:2024/06/04 17:47
1.对于泛型类,不能在静态属性声明中使用类型形参,不能在静态方法声明中使用类型形参
2.如果FOO是bar的一个子类,而G是具有泛型声明的类或接口,那么FOO[]是bar[]的一个子类,但是G<FOO>是G<bar>的子类并不成立
3.程序可以调用get()方法来返回List<?>集合指定索引处的元素,其返回值是一个未知的类型,但是可以肯定的是:它总是一个Object
4.List<? extends shape>:(?)代表一个未知类型,但是该未知类型一定是shape类型的子类
5.不能把对象放入一个未知类型的集合中(比如List<?>)
6.泛型方法的两种使用
//import java.util.Object;import java.util.Collection;import java.util.ArrayList;import java.util.List;public class TestGenericMethod {static <T> void fromArrayToCollection(T[] a,Collection<T> c){for(T o:a){c.add(o);}}//必须保证传过来的参数类型一样static <T> void fromCollectionToCollection1(Collection<T> a,Collection<T> c){for(T o:a){c.add(o);}}//第一个参数:传过来的只要是T的子类就可以static <T> void fromCollectionToCollection2(Collection<? extends T> a,Collection<T> c){for(T o:a){c.add(o);}}public static void main(String[] args) {Object[] oa=new Object[1000];Collection<Object> co=new ArrayList<Object>();//T代表ObjectfromArrayToCollection(oa,co);String[] sa=new String[100];Collection<String> cs=new ArrayList<String>();//T代表StringfromArrayToCollection(sa,cs);//T代表Object,sa向上转型为ObjectfromArrayToCollection(sa,co);List<Object> ao=new ArrayList<Object>();List<String> as=new ArrayList<String>();//编译出现异常,sa无法进行向上转型//fromCollectionToCollection1(ao,as);fromCollectionToCollection2(as,ao);}}
import java.util.List;import java.util.ArrayList;import java.util.Collection;public class MyUtils {//第一个参数:必须是T的本身或是T的父类public static <T> T copy(Collection<? super T >dest,Collection<T> src){T last=null;for(T ele:src){last=ele;dest.add(ele);}return last;}public static void main(String[] args) {List<Number> ln=new ArrayList<Number>();List<Integer> li=new ArrayList<Integer>();li.add(5);Integer last=copy(ln,li);System.out.println(ln);}}
0 0
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 小用stm32f4-CAN控制器(使用库函数)
- makefile详解 定义模式规则
- 汽车加油行驶问题(分层图最短路)
- 李碧華 姊妹愛 歌词
- mrc 和 arc的转换
- 泛型
- NSCalndar 使用方法
- 【JS学习笔记】08 JavaScript 对象
- NLTK学习笔记(6)
- Eclipse远程调试Spark
- 如果想在main函数之前或main函数之后做一些工作
- Python实现人人网爬虫,爬取用户所有状态信息。
- android之修改系统自带ProgressDialog样式
- 如何查看OpenCV源代码