java27(泛型)

2019-01-28  本文已影响70人  机智的老刘明同志

        在说泛型之前,我们看看下图的小例子(编译时无问题,执行时报错)

        出现上图所示问题的原因就是:当我们将一个对象放入集合中,集合不会记住此对象的类型,当再次从集合中取出此对象时,该对象的编译类型变成了Object类型,但其运行时类型任然为其本身类型。(更通俗来说就是向ArrayList中添加了String类型和Integer类型,但是在使用的时候却都是按照String类型使用,类型强转错误)

泛型:

        Java 泛型是JDK5中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说为所操作的数据类型被指定为一个参数

         泛型的优点:1编译时即可看到异常    2省去了类型转换时的消耗

泛型的应用方式:

    泛型类:

    泛型方法:

    泛型接口:

    泛型在比较器中的使用:

    泛型通配符:

        当操作类型时,不需要使用类型的具体功能时,只使用Object类中的功能。那么可以用 ? 通配符来表未知类型。此处    ? 是类型实参,而不是类型形参(和Number、String、Integer一样都是一种实际的类型)

    泛型通配符上下限:

        extends    e  允许接收e类型和e的子类

        super     e 允许接收e类型和e类型的父类    

上一篇 下一篇

猜你喜欢

热点阅读