泛型的使用

Posted 爸爸去哪了2之熊猫三胞胎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泛型的使用相关的知识,希望对你有一定的参考价值。

泛型的使用

泛型:

1.没有使用泛型,任何Object子类都可以被添加
2.数据类型强转可能会爆出异常

public class TestGeneric 
    //集合中没有使用泛型
    public static void main(String[] args) 
        List list=new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add("123");
        for (int i = 0; i < list.size(); i++) 
            System.out.println(list.get(i));
        
    

使用泛型之后:

public class TestGeneric 
    //集合中没有使用泛型
    public static void main(String[] args) 
        List<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        //list.add("123");报错
        for (int i = 0; i < list.size(); i++) 
            System.out.println(list.get(i));
        
    

自定义泛型类:

public class Order<T> 
    private String name;
    private int age;
    private T t;

    List<T> list =new ArrayList<>();
    public void add() 
        list.add(t);
    

    public String getName() 
        return name;
    
    public void setName(String name) 
        this.name = name;
    
    public int getAge() 
        return age;
    
    public void setAge(int age) 
        this.age = age;
    
    public T getT() 
        return t;
    
    public void setT(T t) 
        this.t = t;
    

泛型与继承:

泛型与继承的关系:
若A是类B的子类,那么List就不是List的子类

public static void main(String[] args) 
    Object obj=null;
    String str="AA";
    obj=str;
    Object[] obj1=null;
    String[] str1=new String[] "AAA","BBB","CCC";
    obj1=str1;
    List<Object> list1=null;
    List<String> list2=new ArrayList<>();
//      list1=list2;

通配符:

List 、List。。。。都是List

public static void main(String[] args) 
    List<?> list=null;
    List<Object> list1=new ArrayList<>();
    List<String> list2=new ArrayList<>();
    list=list1;
    list=list2;

    List<? extends Number> list3=new ArrayList<>();
    List<Integer> list4=null;
    list3=list4;
    List<? super Number> list5=new ArrayList<>();
    list5=list1;

以上是关于泛型的使用的主要内容,如果未能解决你的问题,请参考以下文章

基于泛型的类[关闭]

跟王老师学泛型:泛型的应用

泛型的使用

关于List泛型的强制转换

带有泛型的 WPF 自定义控件 - 可能吗?

如何看待go语言泛型的最新设计?