泛型

泛型程序设计

September 20, 2016 9:56 PM Powerd By DeiMo

泛型概述

  • 什么是泛型

    泛型技术是在JDK1.5之后推出的一种安全机制,它是给编译器使用的技术,用于编译时期。确保了类型安全。

  • 泛型的好处

    1.将运行时期的问题ClassCastException转到了编译时期
    2.避免了强制转换的麻烦

  • 什么时候使用泛型

    1.当操作的引用数据类型不确定的时候。就可以使用泛型<>。将要操作的引用数据类型出入即可、其实“<>”就是一个用于接收具体引用数据类型的参数范围。
    2.在程序中,只要用到了带有<>的类或者接口,就要明确传入的具体引用数据类型。

泛型的擦除与补偿

  • 泛型的擦除

    程序运行时,会将泛型去掉,生成的class文件中是不带泛型的,这个称为泛型的擦除。进行泛型的擦除是为了兼容运行低版本的虚拟机中的类加载器。

  • 泛型的补偿

    在运行时,通过获取元素的类型进行自动转换动作、而不需要程序员手动使用强制类型转换。

泛型的限定

  1. 泛型的通配符
    ? —>接收全部类型
  2. 泛型的上限
    ?extends E —>接收E类型或者E的子类型对象。上限!一般用于存储对象,如集合框架的添加元素方法:

    addAll(Collection<? extends E> e)
    
  3. 泛型的下限
    ?super E —>接收E类型或者E类型的父类型对象。下限~。一般用于取出对象,如比较器(Compartor)

泛型的高级应用

泛型除了可以提高类型安全,还可以用于面向对象的系统设计

泛型类

自定义泛型类
public class GenericTool<Q extends Person> {
    private Q q;

    public  void setObject(Q q) {
        this.q = q;
    }
    public   void show(){
        System.out.println(q.toString());
    }
}
驱动函数
public class GenericClassDemo {
    public static void main(String[] args) {
        GenericTool<Person> tool = new GenericTool<Person>();
    //      tool.setObject(new Person("liuchong", 23));
    //      tool.setObject(new Worker("haha", 52));
        tool.setObject(new Student("xixi", 26));
        tool.show();
    }
}

泛型方法

定义方式:

在修饰符之后,方法名之前添加泛型参数

自定义泛型方法的使用
public static <T extends Person> void show(T t){
    ArrayList<T> query = t.query(t);
    for(Iterator<T> iterator = query.iterator();iterator.hasNext();){
        T next = iterator.next();
        System.out.println(next.toString());
    }
}

泛型接口

interface InterDemo<T>{
    void show(T t);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值