美文网首页
泛型机制(二)

泛型机制(二)

作者: coolTigers | 来源:发表于2021-04-01 01:09 被阅读0次

泛型通配符

实例代码

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){}
}

相关文章

  • 泛型机制(二)

    泛型通配符 实例代码 结果 泛型的上下限限定 定义

  • Kotlin-泛型和委托

    泛型 泛型的使用是为了程序有更好的扩展性。泛型类和泛型方法 泛型的高级特性java的泛型是通过类型擦除机制来实现的...

  • Java反射(三)泛型

    一、泛型和Class类从JDK 1.5 后,Java中引入泛型机制,Class类也增加了泛型功能,从而允许使用泛型...

  • Java高级特性入门——泛型、反射和注解

    本次的分享主要围绕以下三个方面: 一、泛型介绍 二、反射机制 三、注解的使用 一、泛型介绍 在日常编程的过程中,泛...

  • 近期的感想

    最近一直看Java的泛型机制,但是总是感觉这种泛型机制非常的乱。很多细节需要思考,不像多态机制那么的成熟。

  • Java反射机制总结(三)

    一、泛型和Class类 从JDK 1.5 后,Java中引入泛型机制,Class类也增加了泛型功能,从而允许使用泛...

  • 【阿里P8大牛教你Android入门之路(java篇)】Java

    一、泛型和Class类 从JDK 1.5 后,Java中引入泛型机制,Class类也增加了泛型功能,从而允许使用泛...

  • Java--反射机制(三)——泛型使用

    一、泛型和Class类 从JDK 1.5 后,Java中引入泛型机制,Class 类也增加了泛型功能,从而允许使用...

  • Java泛型

    泛型定义 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制...

  • Kotlin之泛型的实化、协变、逆变

    1、泛型的实化 Java中泛型是在JDK1.5引入的,是一个伪泛型,它是通过泛型擦除机制来实现的。泛型只存在编译时...

网友评论

      本文标题:泛型机制(二)

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