我肝了一个月,给你写出了这本Java开发手册!(40)

2023-05-02 来源:飞速影视
这段程序不能正常运行,原因是 Integer 类型不能直接强制转换为 String 类型
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
如果我们用泛型进行改写后,示例代码如下
List<String> arrayList = new ArrayList<String>();arrayList.add(100);
这段代码在编译期间就会报错,编译器会在编译阶段就能够帮我们发现类似这样的问题。
泛型的使用
泛型的使用有多种方式,下面我们就来一起探讨一下。
用泛型表示类
泛型可以加到类上面,来表示这个类的类型
//此处 T 可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型publicclassGenericDemo<T>{ //value 这个成员变量的类型为T,T的类型由外部指定 private T value;publicGenericDemo(T value){this.value = value; }public T getValue(){ //泛型方法getKey的返回值类型为T,T的类型由外部指定return value; }publicvoidsetValue(T value){this.value = value }}
用泛型表示接口
泛型接口与泛型类的定义及使用基本相同。
//定义一个泛型接口publicinterfaceGenerator<T> {public T next();}
一般泛型接口常用于 生成器(generator) 中,生成器相当于对象工厂,是一种专门用来创建对象的类。
泛型方法
可以使用泛型来表示方法
publicclassGenericMethods{public <T> voidf(T x){ System.out.println(x.getClass().getName()); }}
泛型通配符
List 是泛型类,为了 表示各种泛型 List 的父类,可以使用类型通配符,类型通配符使用问号(?)表示,它的元素类型可以匹配任何类型。例如
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号