关于”泛型“

来源:互联网 发布:守望先锋优化太差 编辑:程序博客网 时间:2024/06/15 12:12

 

1:例:用一个静态方法往ArrayList对象中,添加任意类型数组。

public class Test {

 public static void main(String[] args) {
      ArrayList<Integer> list1=new ArrayList<Integer>();

      ArrayList<String> list2=new ArrayList<String>();
     //ArrayList<Object> list3=list1;你认为这句话对吗?

     //注意:在范型里面它是不成立,范型只支持一种类型,那怎样就正确了呢?那就是用通配符"?",兼容一切类型。

     ArrayList<? extends Number> list3=list1;//通配符也可以加约束哦
     // list3.add(12);使用通配符add()方法受限

    //注意:一定要是引用类型。
    Integer array[]={1,3,5,8};
    Fun(array, list2);
}
public static <T> void Fun(T t[],ArrayList<T> list)
{
 
     for(int i=0;i<t.length;i++)
      {
         list.add(t[i]);
      }
 }

2:泛型不仅适用于集合,还适用于接口,类

class H<T extends Number&Comparable>//范型约束:只能接一个类,接口多个,类必须写前面
{
 }

总结:没有泛型的时候,所有的对象都是以Object为基础,如果使用必须进行强制类型转换,如果市值类型,

则会导致不断地装箱拆箱操作,对系统消耗很大。

原创粉丝点击