泛型:JDK1.5版本出现的一个安全机制。
好处:将运行时出现的问题(ClassCastException)转移到了编译时期。
避免了强转的麻烦。
格式:通过<>在内指定操作的引用数据类型。
泛型可以定义在类上。
早期:
class Tool
{
private Object obj;
public void setObj(Object obj)
{
this.obj = obj;
}
public Object getObj()
{
return obj;
}
}
main()
{
Tool t = new Tool();
t.setObj(new Worker());//当往里传递的参数为t.setObject(new Student());//编译通过,运行出现ClassCastException
Worker w = (Worker)t.getObj();//必须要强转
}
现在:通过泛型类来完成。
class Tool<Q>
{
private Q obj;
public void setObj(Q obj)
{
this.obj = obj;
}
public Q getObj()
{
return obj;
}
}
main()
{
Tool<Worker> t = new Tool<Worker>();
t.setObject(new Worker());//如果传入t.setObject(new Student());编译时会出现失败。
//那么就是将运行时出现的问题转移到了编译时期。
Worker w = t.getObj();//不需要在进行强转。
}
什么时候定义泛型类呢?
当类中要操作的引用数据类型不确定的时候,就使用泛型类。
在使用泛型类时,只有在建立泛型类对象时,才可以指定具体要操作的引用数据类型。
那么该对象在调用方法时,操作的类型都是相同的。
如果想方法在调用的时,操作的类型不确定,而且不相同,可以将泛型定义在方法上。
class Utils
{
public <T> void printInfo(T t)
{
}
public <Q> void show(Q q)
{
}
}
泛型的限定:
1,? extends E: 接收的是E类型对象或者E的子类型对象。
2,? super E:接收的是E类型对象或者E的超类,直至Object对象
分享到:
相关推荐
全面总结Java泛型--实例
Java 第二阶段提升编程能力【泛型】---- 代码 Java 第二阶段提升编程能力【泛型】---- 代码 Java 第二阶段提升编程能力【泛型】---- 代码 Java 第二阶段提升编程能力【泛型】---- 代码 Java 第二阶段提升编程能力...
Java中的泛型 JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0。这说明Java已经有大幅度的变化。本文将讲解JDK5.0支持的新功能-----Java的泛型. 1、Java泛型 其实Java的泛型就是创建一个用类型...
java泛型使用的视频,讲的不错,可以学习学习
包含11个Word文档,包含了C#的集合、字符串和正则表达式、泛型、内存管理和指针、反射、线程和同步、.NET的安全性、COM的互相操作性、文件和注册表操作、使用GDI+画图、Windows Presentation Foundation。...
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
补充知识:泛型1---马克-to-win java视频的详细描述与介绍
Delphi泛型库--DGL(The Delphi Generic Library) 在Delphi中实现的类型安全、高效、易用的泛型容器和算法库;借鉴了C++标准中的STL;
个人制作且上课使用的课件,希望对大家初步了解泛型相关内容有一定的帮助。个人制作且上课使用的课件,希望对大家初步了解泛型相关内容有一定的帮助。
无处不在的幻灯片放映 该项目是关于在安装Ubuntu或其* buntu朋友时出现的幻灯片的。 一个源软件包为Ubuntu提供了许多Debian软件包,包括ubiquity-slideshow-ubuntu,ubiquity-slideshow-xubuntu和ubiquity-slideshow...
该库包含使用库编写的泛型函数的各种小示例。 如果您想了解如何以SOP样式定义泛型函数,这是一个很好的起点。 这是开发资料库。 对于发行版,请查看 。
【Java基础】泛型方法 - 右撇子 - 博客频道 - CSDN.NET
Ada 2012泛型套件可简化多核系统的迭代和递归并行性,并为单核和多核系统提供更安全的递归。 泛型包括适用于实时系统的Ravenscar兼容版本。 还包括石蜡,石蜡是一组有用的泛型,用于并行快速排序,快速傅立叶变换,...
泛型应用--图的深度(广度)优先遍历.成语接龙例
补充知识2 ---马克-to-win java视频泛型的详细描述与介绍
stl 泛型编程课程,值得学习,是百度网盘方式获取,,
C++Primer第11章-泛型算法-课后习题答案[收集].pdf
本demo是自己写的一个命令模式的demo,设计到了一般的命令模式,命令模式的变种,万能命令,block封装命令,复合型命令等等,对整个demo我写了一篇文章:https://www.jianshu.com/p/266794b9eda6 ,有兴趣的可以对照着文章...
数学和泛型编程-高效编程的奥秘(英文版pdf)原名:From_Mathematics_to_Generic_Programming,作者;Alexander A. Stepanov Daniel E. Rose
day02【Collection、泛型】-笔记.md