JAVA高级——泛型

/*
什么是泛型,可以这么说:
一般在类名后面加了<E>的  就是泛型的   方法名后面加了<T>的  是泛型方法

泛型两个场景的作用:
    定义时:定义时泛型时用来规定数据类型的,可以理解为用一个符号代替某种类型
    使用时:在使用的时候用具体的数据类型,将定义的符号替换掉

泛型可以用在类、方法、变量,还有接口上
    泛型类:
        类在定义的时候,描述某种数据类型,使用的时候确定数据类型
        定义泛型的时候,类名后面<E>里面的这个E可以随意写。代表任意类型
        创建对象的时候,就需要明确类型了。不可以在后面随意写了
    举个栗子*/
    public calss Animal<?>{
        //这里是定义泛型,所以中托号里面可以随便写什么字母,问号也可以
    }
    
    Animal<String> animal = new Animal<String>();
    //但是这里是创建对象了,也就是实例化了,所以不可以随便乱写了,需要明确数据类型
    //因为Animal类后面加了泛型,所以animal在用.add方法添加数据类型的时候只能添加String类型的

    /*
    泛型接口:
    泛型接口的使用与泛型类基本一致,但是由于接口需要实现,所以如果泛型在接口上,子类
    实现接口时,也必添加泛型
    举个栗子:
    */

    public interface Test<E>{
        //***
    }//父类这里时接口,并且有泛型

    public class 子类 <E> implements Test<E>{
    //这里子类继承了父类,所以子类也要有泛型
    }

    /*
    泛型方法
        在方法描述的时候,可以加泛型
        方法的泛型与类无关,说明带有泛型的方法可以脱离泛型类独立存在。
    举个栗子
    */

    public calss Test{
        public void test<T> (T t){
            //***
        }
    }

    //除了这三种,还有一种叫高级泛型,一般用来规范边界

    /*
    注意:泛型不能使用基本数据类型,如果想要使用基本数据类型,需要使用其封装类(引用类型)来替代
    原因:一位内集合底层是Object类型的数组,基本类型的包装类继承自Object,而不能说int\double
    等继承自Object
    Object是引用类型,int是基本数据类型,泛型泛的是所有的引用类型
    */

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值