Java学习笔记--泛型(巨细)

本文深入探讨了Java中的泛型,包括泛型的定义、用途、使用方式以及注意事项。泛型用于确保集合中只包含特定类型的数据,提供编译时异常检查并避免类型转换。在集合中,泛型没有多态概念,类型必须一致。文章讨论了泛型方法、泛型类、泛型通配符、桥方法以及泛型的类型擦除等概念,并强调了泛型与基本数据类型的关系,指出Java泛型不支持向上转型,并且不能用于异常处理的catch语句。此外,文章还提到了泛型数组的不安全性以及泛型在多态场景下的挑战和解决方案。
摘要由CSDN通过智能技术生成

泛型:
泛型在java基础中属于重要的一部分,掌握泛型是必要的。接下来以我的理解来解释一下

背景:编译器是先通过检查代码中泛型的类型 再进行类型擦除 再进行编译的
  1. 什么是泛型,
  2. 什么时候需要泛型,
  3. 泛型怎么用,
  4. 泛型注意的问题。

目前我接触的泛型应用就是集合使用泛型达到 一个集合里面只有一种类型的数据
泛型的好处:
1. 将运行时的异常提前至了编译时。
2. 避免了无谓的强制类型转换 。

泛型在集合中的常见应用:

ArrayList<String>  list = new ArrayList<String>();  true     推荐使用。

ArrayList<Object>  list = new ArrayList<String>();  false
ArrayList<String>  list = new ArrayList<Object>();  false

//以下两种写法主要是为了兼顾新老系统的兼用性问题。
 * 
ArrayList<String>  list = new ArrayList();           true   

ArrayList    list = new ArrayList<String>();   true   

注意: 泛型没有多态的概念,左右两边的数据 类型必须 要一致,或者只是写一边的泛型类型。

推荐使用: 两边都写泛型。
具体集合是上面类型的 是看左边的泛型是什么

举个常见的例子:

集合:

ArrayList  list = new ArrayList(); 
    list.add("11");
    list.add(3);

这个时候ArrayList集合中存储了多种类型,是不是看起来很不顺眼,日常应用中 我们想要的结果是 一个集合里面存储的类型是同一个。
如:

ArrayList<String>  list = new ArrayList<String>(); 
    list.add("11");
    list.add(3);
    //这个时候 集合list只能存放String类型的数据 
    //如果存储了其他的如 Integer类型之类的就会报错,是在编译前检查

泛型方法

 public <T> T showKeyName(T a){//<T>是声明泛型方法
    return a;
}

泛型类:
自定义泛型: 自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量。

class Point< T>{ // 此处可以随便写标识符号,T是type的简称 一般都是T  
 private T var ; // var的类型由T指定,即:由外部指定  
 public T getVar(){ // 返回值的类型由外部决定  
  return var ;  
 }  
 public void setVar(T var){ // 设置的类型也由外部决定  
  this.v
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值