代码训练营——泛型实例
来源:互联网 发布:linux 系统 死机 日志 编辑:程序博客网 时间:2024/04/30 02:19
class Worker{}class Student{}//泛型前做法class Tool{ private Object obj; public void setObject(Object obj) { this.obj = obj; } public Object getObject() { return obj; }}
class GenericDemo3{ public static void main(String[] args) { Tool t = new Tool(); t.setObject(new Student()); Student stu = (Student)t.getObject(); }}
运行正常。
但是当:
Tool t = new Tool();t.setObject(new Student());Worker work = (Worker)t.getObject();
得出:
Exception in thread "main" java.lang.ClassCastException: Student cannot be cast to Worker
//泛型类什么时候定义泛型类?当类中要操作的引用数据类型不确定的时候,早期定义Object来完成扩展。现在定义泛型来完成扩展。class Utils<Temp>{ private Temp t; public void setObject(Temp t) { this.t = t; } public Temp getObject() { return t; }}class GenericDemo3{ public static void main(String[] args) { Utils<Worker> u = new Utils<Worker>(); u.setObject(new Worker()); Worker w = u.getObject(); }}
运行通过。
Utils<Worker> u = new Utils<Worker>();u.setObject(new Student());Worker w = u.getObject();
运行结果:
GenericDemo3.java:38: 错误: 不兼容的类型: Student无法转换为Worker
u.setObject(new Student());
^
注: 某些消息已经过简化; 请使用 -Xdiags:verbose 重新编译以获得完整输出
1 个错误
0 0
- 代码训练营——泛型实例
- 代码训练营——泛型之限定
- 代码训练营——String
- 代码训练营——StringBuffer
- 代码训练营——ArrayList
- 代码训练营——TreeSet
- 代码训练营——TreeMap
- 代码训练营——TreeSet比较器
- JAVA代码训练营—— keySet、entrySet
- 代码训练营——递归算法判断递增数组
- 代码训练营——java读取文件中内容
- 代码训练营——进制转换
- JAVA代码训练营救——TreeSet的泛型实现
- WEKA学习——CSVLoader 实例训练 和 源码分析
- 代码训练营———将文本文件复制到另一个文件中
- 代码训练营——TreeMap(获取该字符串中的字母出现的次数)
- 代码训练营——File,列出指定目录下的所有内容
- 代码训练营——建立一个java文件列表文件
- android本地音乐播放(二)
- linux内核开机logo显示几分钟之后黑屏解决办法
- 【caffe-Windows】caffe+VS2013+Windows无GPU快速配置教程
- 搞不懂下面这个css样式加上:after之后就不起作用了
- Html+CSS_居中布局的总结
- 代码训练营——泛型实例
- 面向AMD64的文件xxx与项目的目标平台x86不兼容
- 删除链表中重复的结点
- Mysql 5.5多实例部署步骤
- 表格布局—计算器
- 第十、十一周项目1:阅读程序,写出执行结果(1)
- android登陆模块 联网登陆和离线登陆 类似微信离线登陆
- iOS根据日期判断是刚刚、几分钟前、几小时前等的代码片段
- 关于com工程依赖的一些总结