zoukankan      html  css  js  c++  java
  • 泛型和泛型的通配符应用

    泛型以及通配符

    当使用泛型类或者泛型接口,传递的数据中,泛型的类型不确定,可以通过通配符表示<?>表示.一旦程序当中使用泛型通配符后,只能使用Object类中共性的方法. 集合中元素自身类型的方法无法使用.(这是一种多态的写法,)

    泛型作为形参写在方法参数列表内

    举个栗子:

    泛型应用在类中
    public class Pue<E>{
       private E age;
    public void set(E name){
      this.name=name;
    }
    }
    当我们使用泛型修饰一个类的时候,我们大多使用泛型来修饰成员变量和get  set方法以及构造方法
     泛型应用在方法中
    public static<E> void methods(E age){
    System.out.println(E.getClass());
    }
    当我们使用泛型修饰一个类的时候,在类的修饰符后面加上泛型的修饰符号<随意的符号就当定义变量>然后就可以在方法内使用泛型来修饰参数或者局部变量,

    备注;当我们调用了使用了带有泛型的方法或者,类,这个泛型一定会被固定.必须是确定的类型,输入的是什么参数,泛型会自动成为相同的类型.

    通配符,当我们需要对泛型进行限制的时候,java为我们提供了一个符号,通配符来对泛型进行限制,简称

    受限泛型

    受限泛型分为两种限制方式: 上限extends     下限super

    定义格式

    //定义方法 此时可以接受任意的数据类型
    public static void getElement(Collection<?> coll){//...}
    //定义方法,此时我只让方法接收数字类型 Number类型和Number的子类类型
    public static void getElement(Collection<? extends Number> coll){//....}
    //定义方法,此时我只让接收Number类型及其以上的类型
    public static void getElement(Collection<? super Number> coll){//...}

    通配符不能直接用来定义集合的数据类型,程序会混乱,并且数据类型被定义了通配符的集合无法存储任何类型的数据

    栗子:

    ArrayList<?> list= new ArrayList<>();

    上面这个集合现在无法储存任何的数据.

  • 相关阅读:
    SSH、SCP和SFTP 解析(转)
    SQL Server数据库partition by 与ROW_NUMBER()函数使用详解 (转载)
    Git版本控制与工作流详解(转)
    IQueryable,IEnumberable,.AsEnumerable() 和 .AsQueryable() (转载)
    ASP.NET 中Http处理流程与 HttpModule,HttpHandler学习之初步认知
    xml Node 是否存在
    MVC-前台调用后台action 传递upload file 参数问题
    ResXResourceWriter 与ResourceWriter
    "= ="与 equals 的区别 摘录
    jpg文件格式分析
  • 原文地址:https://www.cnblogs.com/rosiness/p/14082548.html
Copyright © 2011-2022 走看看