java再学习之泛型

什么是泛型?

泛型(generic)是指参数化类型的能力。【泛型类型必须是引用类型,不能使用基本类型来替换泛型类型。】


泛型的优点

使用泛型的主要优点是能够在编译时而不是在运行时检测出错误。泛型类或方法允许用户指定可以和这些类或方法一起工作的对象类型。如果试图使用一个不相容的对象,编译器就会检测出这个错误。从而使程序更加可靠。


泛型类和接口:

定义一个类为泛型类型,需要将泛型类型放在类名之后,例如:GenericStack<E>。
定义一个方法为泛型类型,需要将泛型类型放在方法返回类型之前,例如:<E> void max(E o1, E o2){}


为什么泛型类型可以提高可靠性和可读性?

泛型能够在编译时而不是在运行时检测出错误,如果试图使用一个不相容的对象,编译器就会检测出这个错误,从而使程序更加可靠。


如何使用泛型方法和受限泛型类型?

为了调用泛型方法,需要将实际类型放在尖括号内作为方法名的前缀。将泛型指定为另一种类型的子类型,这样的泛型类型称为受限的(bounded)。


什么是原始类型?

原始类型(raw type):不使用类型参数的泛型类称为原始类型。


为什么有必要有通配的泛型类型?

泛型方法的相互间调用,如果泛型类型不相同,就必须有通配的泛型类型。


什么是泛型消除并并列出一些由类型消除引起的泛型上的限制和局限性?

泛型消除:编译器使用泛型类型信息来编译代码,但是随后会消除它,因此,泛型信息在运行时是不可用的。泛型存在于编译时,一旦编译器确认泛型类型是安全使用的,就会将它转换为原始类型。
泛型类型的一些限制:
1、不能使用new E(),即不能使用泛型类型参数创建实例。
2、不能使用new E[],即不能使用泛型类型参数创建数组。
3、在静态环境下不允许类的参数是泛型类型。由于泛型类的所有实例都有相同的运行时类,所以泛型类的静态变量和方法是被它的所有实例所共享的,因此,在静态方法、数据域或者初始化语句中,为了类而引用泛型参数是非法的。
4、异常类不能是泛型的。即,泛型类不能扩展java.lang.Throwable。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值