java泛型学习笔记

基本概念

泛型本质是**“数据类型的参数化”。我们可以把泛型理解为数据类型的一个占位符,即告诉编译器,在调用泛型时必须传入实际类型。这种参数类型可以用在类,接口和方法中。分别被称为泛型类,泛型接口,泛型方法**。

参数化类型:1、把类型当做是参数一样传递。2、数据类型只能是引用类型。

泛型的好处
  1. 代码可读性更好,不用强制转换类型。
  2. 程序更加安全,只要编译器没有警告,运行时期就不会出现ClassCastException异常
类型擦除

编码时采用泛型写的类型参数,编译器会在编译时去掉,这称之为“类型擦除”。泛型主要用于编译阶段,编译后生成的字节码文件不包括泛型中的类型信息,涉及类型转换仍然是普通的强制性类型转换,类型参数在编译后会被替换成Object,运行时虚拟机并不知道泛型。

泛型的使用

定义泛型
泛型标记 对应单词 说明
E Element 在容器中使用,表示容器中的元素
T Type 表示普通的JAVA类
K Key 表示键,例如Map中的键Key
V Value 表示值
N Number 表示数值类型
表示不确定的JAVA类型
泛型类

泛型类就是把泛型定义在类上,用户使用该类的时候,才把类型明确下来。泛型类的具体使用方法是在类的名称后面添加一个或多个类型参数声明,如,<T,K,V>

//泛型类
public class Generic<T> {
   
    private T data;

    public void setData(T data) {
   
        this.data = data;
    }

    public T getData() {
   
        return data;
    }
}



public class Test {
   

    public static void main(String[] args) {
   
        //假如没有设定占位符,则set方法中的参数 默认是Object类型
        Generic<String> generic = new Generic<>();
        generic.setData("admin");

        String data = generic.getData();
        System.out.println(data);


        Generic<Integer> generic1 = new Generic<>();
        generic1.setData(54);
        Integer flag = generic1.getData();
        System
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值