• java范型的理解


    参考:https://www.cnblogs.com/coprince/p/8603492.html
    范型的定义
    参数化类型,一般用于类、接口、方法,称为范型类、范型接口、范型方法。

    范型的特性
    只在编译阶段有效。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法,泛型信息不会进入到运行时阶段。

    范型类
    声明范型类
    `puclic Generic {
    private T key;

    public Generic(T key) { //泛型构造方法形参key的类型也为T,T的类型由外部指定
        this.key = key;
    }
    
    public T getKey(){ //泛型方法getKey的返回值类型为T,T的类型由外部指定
        return key;
    }
    

    }`
    注意:1.泛型的类型参数只能是类类型(包括自定义类),不能是简单类型
    2.不能对确切的泛型类型使用instanceof操作

    范型接口
    public Interface Generator<T> { public T test(); }
    注意:
    当实现泛型接口的类,未传入泛型实参时,实现范型接口的类也必须将范型的声明一起加到类中
    当实现泛型接口的类,传入泛型实参时,不用将范型的声明一起加到类中,T都要替换成传入的实参类型。

    范型方法
    范型类和范型方法的区别:
    泛型类,是在实例化类的时候指明泛型的具体类型;泛型方法,是在调用方法的时候指明泛型的具体类型
    public <T> genericMethod(Class<T> tClass){ }
    注意:1.只有声明了的方法才是泛型方法
    2.表明该方法将使用泛型类型T,此时才可以在方法中使用泛型类型T
    范型方法和可变参数
    可变参数:方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用

    类型通配符
    ?: 是一个类型实参,同与Integer、String是实际的类型,代表所有类型的父类
    作用:当具体类型不确定的时候,用 ? 通配符来表未知类型。

    范型上下边界
    类型实参只准传入某种类型的父类或某种类型的子类
    上边界: 传入的类型实参必须是指定类型的子类型
    Generic<? extends Number>
    下边界: 传入的类型实参必须是指定类型的父类型
    Generic<? super Number>

    范型数组

    金麟岂能忍一世平凡 飞上了青天 天下还依然
  • 相关阅读:
    dom4j读写XML文件
    Spring的javaMail邮件发送(带附件)
    PayPal网站付款标准版(for PHP)
    SpringMVC整合TaskExecutor线程池的配置/使用
    SELECT INTO和INSERT INTO SELECT(SQL Server)
    java简单的数据库查询(SQLServer数据库)
    oracle导入TYPE对象报错ORA-02304
    mysql将字符串转化为数字
    asp.net应用发布到IIS无法链接到oracle数据库
    使用js获取数组中最大、最小的数字
  • 原文地址:https://www.cnblogs.com/Auge/p/14314397.html
Copyright © 2020-2023  润新知