Java泛型相关知识

Java泛型相关知识

Java泛型是JDK1.5之后提出的新概念,本意是让同一套代码可以适应更多的类型。

在没有泛型之前一旦某个接口定义了参数为某个类型,则实现了该接口的方法必须采用同样类型参数,不利于程序的扩展。

泛型带来的好处:(主要是为了更好的创建容器类)
  1. 比如在创建容器的时候,指定容器持有何种类型,以便在编译期间就能够保证类型的正确性,而不是将错误留到运行的时候
  2. 无论是创建类、方法的时候都可以泛化参数,可以做到代码的复用
缺点:

使语言复杂化,并使代码复杂化

什么是类型擦除?

jdk是通过类型擦除来实现泛型的,编译器在编译之后会擦除了所有类型相关的信息,所以在运行时不存在任何类型相关的信息。比如如果编写 List<String> list = new Arraylist<>();在运行的时候,仅用List来表示。

为什么要用类型擦除?

这么做是为了向前兼容,为了兼容jdk1.5以前的程序,确保能和Java 5之前的版本开发二进制类库进行兼容。

什么是限定通配符和非限定通配符?

限定通配符,也叫上边界通配符。是限定类型必须是某一个类型的子类。
比如:List<? extends A> list,表示具有任何从A继承的类型的列表。
而非限定通配符(下边界通配符):<? super A> 确保类型必须是A的父类来设定类型的下界。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值