浅谈泛型

如何理解泛型?

泛型是一种"代码模板".可以用一套代码套用各种类型。
在这里插入图片描述

作用

通过泛型的语法定义,约束集合元素的类型,编译器可以在编译期提供一定的类型安全检查,避免运行时才暴露bug。

l 代码通用性更强,后面有案例
l 泛型可以提升程序代码的可读性,但它只是一个语法糖(编译后这样的东西就被删除,不出现在最终的源代码中),对于JVM运行时的性能是没有任何影响的。

泛型声明

泛型可以在接口、方法、返回值上使用:
java.util.List泛型接口/类:

public interface Collection<E> {}

public class TestC <QQ> {}

常用名称

l  E - Element (在集合中使用,因为集合中存放的是元素)
l  T - Type(Java 类)
l  K - Key(键)
l  V - Value(值)
l N - Number(数值类型)
l  ? - 表示不确定的java类型

测试泛型代码:

//测试泛型的使用

public class Test1_Generic {

    public static void main(String[] args) {

       //数组

       int[] a = new int[3];

     

       a[0]=1;

//     a[1]="jack";//泛型,想要完成和数组一样,具体数据校验的功能

      

      

       //泛型好处2:可以用<>标志泛型,<>里面,可以指定元素的类型,来约束数据的类型

//<String> 就会检查集合中,元素的类型,如果添加的数据,类型不匹配,会在编译时期报错而不是运行了才报错

       List<String> list = new ArrayList();

      

//     List list = new ArrayList();//3,可以添加任何类型的数据,但是运行时期会报错

      

//     list.add(100);

       list.add("jack");

//     list.add(9.9);

      

       for (Object o : list) {

           //泛型的好处1:把运行时期的错误提前到了编译时期

//java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

           String s = (String) o;

           System.out.println(s);

       }

      

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值