泛型

泛型概念

所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如:继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实际的类型参数,也称为类型实参)。

为什么要使用泛型

比如需要你录入学生的成绩,在不使用泛型的情况下,数据类型并不确定,容易出现输入不一致的数据类型,而使用了泛型之后,会在编译期进行校验。

代码示例
不使用泛型的时候

 @Test
    public void dome1(){
        ArrayList arrayList=new ArrayList();
        //  录入学生成绩
        arrayList.add(77);
        arrayList.add(79);
        arrayList.add(86);
        arrayList.add(62);
        //   不小心录入错误
        arrayList.add("78s");

        for (Object scores : arrayList){
            //  会出现 ClassCastException异常
            int score =(int )scores;
            System.out.println(score);
        }
    }

使用泛型

@Test
    public void dome2(){
        ArrayList<Integer> arrayList2=new ArrayList<Integer>();
        //  录入学生成绩
        arrayList2.add(77);
        arrayList2.add(79);
        arrayList2.add(86);
        arrayList2.add(62);
        //  数据类型不一致编译无法通过
//        arrayList2.add("78s");

        for (Integer scores : arrayList2){
            //  会出现 ClassCastException异常
            int score =(int )scores;
            System.out.println(score);
        }
    }

泛型的使用

  1. 泛型是jdk 5.0新特性
  2. 泛型的类型必须是类,不能是基本数据类型,如果要使用基本数据类型那么可以使用他们的对应的包装类型
  3. 泛型如果没有显示的指定,默认泛型为java.long.Object
  4. 多个泛型之间用,隔开 格式:< E1,E2,E3>
  5. 泛型不同的引用不能相互赋值
  6. 如果泛型结构是一个接口或抽象类,则不可创建泛型类的对象。
  7. 静态方法不能使用泛型。
  8. 异常类不能声明为泛型类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值