JAVA——泛型
来源:互联网 发布:电信网络制式有哪些 编辑:程序博客网 时间:2024/06/06 18:40
泛型:JDK1.5以后出现的新特性。用于解决安全问题,是一个安全机制;
好处:
1、将运行时期出现问题classCastException,转移到了编译期间,方便于程序员解决问题,让运行时问题减少,安全
2、避免了强制转换麻烦
泛型格式:通过<>来定义要操作的引用数据类型。
在使用java提供的对象时,什么时候写泛型呢?
通常在集合框架中很常见;
其实<>就是用来接收类型的。
当使用集合时,将集合中要存储的数据类型作为参数传递到<>中即可。
import java.util.*;class GenericDemo{ public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("hello"); al.add("pp"); al.add("I love you !"); al.add(3); Iterator it = al.iterator(); while(it.hasNext()) { String s = (String)it.next(); System.out.println(s+"..."+s.length()); } }}
出现了这个情况,为什么呢?
注: /Users/wangliqiang/Desktop/JAVA/BXD/GenericDemo.java使用了未经检查或不安全的操作。注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。hello...5pp...2Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at GenericDemo.main(GenericDemo.java:22)I love you !...12
因为 al.add(3);系统自动装箱会new Integer(3);变为Integer对象。但是,迭代器中存放了添加进去的元素。
Iterator it = al.iterator();
String s = (String)it.next();
这样会ClassCastException;
所以我们可以这么做:
class GenericDemo{ public static void main(String[] args) { ArrayList <String>al = new ArrayList<String>(); al.add("hello"); al.add("bb"); al.add("I love you !"); Iterator <String>it = al.iterator(); while(it.hasNext()) { String s = it.next(); System.out.println(s+"..."+s.length()); } }}
结果:
hello…5
bb…2
I love you !…12
0 0
- java——泛型
- Java——泛型
- JAVA——泛型
- Java——泛型
- Java——泛型
- java——泛型
- Java——泛型
- java高新技术—泛型
- Java基础—泛型
- JAVA加强——泛型
- Java泛型——泛型类
- 【Java核心技术——泛型】
- Effective Java——泛型
- java基础——泛型
- java学习——泛型
- Java Base —— 泛型
- Java——泛型Generic
- Java基础——泛型
- windows 10激活出现0xc004f074错误
- Spring的Controller请求方法中参数名匹配,但是参数类型不同会报404
- HTTP必知必会——断点续传原理
- Application Session Cookie ViewState Cache Hidden 区别
- Spark学习五:spark sql
- JAVA——泛型
- Spark学习六:spark streaming
- Spark学习七:spark streaming与flume集成
- Spark学习八:spark streaming与flume和kafka集成
- alsa_latency
- 雪碧图实现原理及应用
- CSDN,我来啦~
- markdown转html格式
- 数据不平衡问题的处理