泛型机制(二)

泛型通配符

实例代码

package my.demo;

import java.util.ArrayList;
import java.util.Iterator;

public class mainFunction {
    public static void main(String[] args){
        ArrayList<Integer> list = new ArrayList<>();
        ArrayList<String> list1 = new ArrayList<>();
        list.add(123);
        list.add(456);
        list1.add("abc");
        list1.add("def");
        PrintArray(list);
        PrintArray(list1);
    }

    public  static  void PrintArray(ArrayList<?> list)
    {
        Iterator<?> it = list.iterator();
        while(it.hasNext()) {
            Object obj = it.next();
            System.out.println(obj);
            System.out.println(", ");
        }

    }
}

结果

4.png

泛型的上下限限定

定义

package my.demo;

import java.util.ArrayList;
import java.util.Collection;

/*
    泛型的上限限定: ? extend E 代表使用的泛型只能是E类型的子类/本身
    泛型的下限限定: ? super E 代表使用的泛型只能是E类型的父类/本身
* */
public class GenericDemo1 {
    public static void main(String[] args) {
        Collection<Integer> list1 = new ArrayList<Integer>();
        Collection<String> list2 = new ArrayList<String>();
        Collection<Number> list3 = new ArrayList<Number>();
        Collection<Object> list4 = new ArrayList<Object>();

        GetElement1(list1);
        GetElement1(list2); // String extends Object , String不是Number的子类
        GetElement1(list3);
        GetElement1(list4); // Object 不是Number的子类

        GetElement2(list1); // Integer extends Numbers,Integer不是Numer的父类
        GetElement2(list2); // String 不是Number的父类
        GetElement2(list3);
        GetElement2(list4);


    }
    public static void GetElement1(Collection<? extends Number> col){}
    public static void GetElement2(Collection<? super Number> col){}
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们做开发的时候一直会强调数据类型的概念,在Java中分为基本类型和引用数据类型,其中基本数据类型有八种,除了类以...
    逐梦々少年阅读 1,222评论 0 7
  • 说来惭愧,虽然平时经常会使用到一些泛型类,但是却一直没有深入地去了解过泛型机制。今天开始学习记录泛型机制相关的知识...
    怡红快绿阅读 555评论 0 1
  • 泛型是Java 1.5引入的新特性。泛型的本质是参数化类型,这种参数类型可以用在类、变量、接口和方法的创建中,分别...
    何时不晚阅读 3,052评论 0 2
  • 想要学好java,泛型机制是一个必须要掌握的知识点,无奈很多书上写的不是很啰嗦,就是概念太多难以理解,因此参考了很...
    愚公要移山阅读 1,124评论 0 5
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,609评论 0 11