美文网首页
day15-12-集合框架(泛型限定)

day15-12-集合框架(泛型限定)

作者: 姗婷 | 来源:发表于2020-06-22 07:48 被阅读0次
import java.util.*;

/*
?通配符,也可以理解为占位符
泛型的限定
? extends E:可以接收E类型或者E的子类型。上限。
? super E:可以接收E类型或者E父类型。下限。
*/

class GenericDemo6 
{
    public static void main(String[] args) 
    {
        /*
        ArrayList<String> al = new ArrayList<String>();
        al.add("abc1");
        al.add("abc2");
        al.add("abc3");

        ArrayList<Integer> al1 = new ArrayList<Integer>();
        al1.add(4);
        al1.add(7);
        al1.add(1);

        printColl(al);
        printColl(al1);
        */

        ArrayList<Person> al = new ArrayList<Person>();
        al.add(new Person("abc1"));
        al.add(new Person("abc2"));
        al.add(new Person("abc3"));

        //printColl(al);
        ArrayList<Student> al1 = new ArrayList<Student>();
        al1.add(new Student("abc--1"));
        al1.add(new Student("abc--2"));
        al1.add(new Student("abc--3"));
         printColl(al1);//ArryaList<Person> al = new ArrayList<Student>();error
    }
    
    public static void printColl(ArrayList<? extends Person> al)//能接收的是Person类型及Person子类型
    {
        Iterator<? extends Person> it = al.iterator();
        while(it.hasNext())
        {
            System.out.println(it.next().getName());
        }
    
    }
            
    /*
    //当有了?通配符之后,al和al1都可以传入
    public static void printColl(ArrayList<?> al)//ArrayList<String> al = new ArrayList<Integer>;左右两边类型不一致,错误
    {
        Iterator<?> it = al.iterator();
        while(it.hasNext())
        {
            System.out.println(it.next());
        }
        
    }
    */  
}

class Person
{
    private  String name;
    Person(String name)
    {
        this.name  = name;
    }
    public String getName()
    {
        return name;
    }
}
class Student extends Person
{
    private String name;
    Student(String name)
    {
        super(name);
    }
}

相关文章

  • day15-12-集合框架(泛型限定)

  • Java基础day15笔记:泛型限定

    12-集合框架(泛型限定) 接下来说一说泛型的高级应用。 例子: 将al传进printColl中打印: 将al1传...

  • 《Kotlin入门实战》CH8 | 泛型

    泛型 泛型是在Java5中引入的,泛型让集合框架可以重用代码,在没有泛型时候,集合框架中存储数据的类型都是Obje...

  • 四、Java高级--1、泛型

    泛型定义:数据类型参数化,提前定义好集合中放入什么类型集合框架中没使用泛型和使用泛型的比较 泛型规则和限制1、泛型...

  • 05-Java基础-集合框架& List & Map

    集合框架、generic泛型、List、Set、Map、Collections类 集合框架 数组和集合的区别:1....

  • java 泛型和多态的区别

    1、使用泛型可以最大限度的复用代码、保护类型安全以及提高性能,例如:泛型集合框架的使用。(没有泛型以前,集合中加入...

  • 集合

    集合 Java集合框架 将集合的接口和实现分离 Collection接口 迭代器 泛型使用方法 集合框架中的接口 ...

  • 泛型

    将集合中的元素限定为一个特定的类型。 一. 为什么需要泛型? 泛型出现之前 远在 JDK 1.4 版本的时候,那时...

  • Java泛型

    泛型的声明:在定义类的时候,加上即可,例如: 泛型的应用:1.集合框架 自定义的类(加上泛型声明即可使用泛型...

  • day15-13-集合框架(泛型限定2)

网友评论

      本文标题:day15-12-集合框架(泛型限定)

      本文链接:https://www.haomeiwen.com/subject/sobaxktx.html