java泛型

本文介绍了Java泛型的引入背景,包括解决类型强制转换问题和编译期类型检查。讲解了泛型的使用方式(泛型类、接口和方法),以及泛型擦除的概念和原因,以及如何通过内部类在运行时获取实际参数类型。
摘要由CSDN通过智能技术生成

本质是将类型参数化.
在没有引入泛型前,比如集合类,放入的类型是"任意化"的,而这种"任意化"带来的最直接的问题就是需要进行类型的强制转换,这种强制转换的前提是开发者知道实际参数类型. 如果类型转换错误,编译器不会提示,当运行时才会报错,这是一个隐患.JDK5中引入泛型,不仅解决类型强制转换的问题,同时由于对类型进行了参数化限制,对于错误的类型,在编译器就可以发现.

需要了解:

1.泛型使用方式

分别为:泛型类、泛型接口、泛型方法

public <T> T showKeyName(Generic<T> container){
    System.out.println("container key :" + container.getKey());
    T test = container.getKey();
    return test;
}

2.关于泛型擦除

引入泛型的目的是为了方便对代码进行编译期检查,这种类型约束只在编译阶段有效,编译后就被擦除.

为什么擦除?

  1. 兼容,JDK5才引入,保证生成的Class文件和之前版本的JDK一致
  2. 不用生成多余的Class对象.比如list 和list

泛型擦除导致运行期间无法获取实际的参数类型?
通过内部类解决

3.泛型上下边界

//todo

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值