网站首页 > java教程 正文
泛型方法——可变参数与泛型和平共处
泛型匿名内部类
泛型类 泛型接口 泛型方法如何使用
如何实例化参数类型——无法实例化的原因
由于擦除和编译器无法知道T类型是否有无参的构造函数,所以无法直接实例化参数类型。
如何实例化参数类型——使用Class工厂对象——运行时检查
要实例化参数类型,可以把工厂对象传递进来,Class对象就是一个工厂对象。
Integer没有无参构造函数,所以无法成功创建对象。
要记住Class<T>是内置的工厂对象,但是该工厂对象不能在编译期检查代码是否有错误,比如Integer。
如何实例化参数类型——使用具体工厂对象——编译期检查
创建一个泛型的工厂接口,具体的实现类知道如何实例化对象。
如何实例化参数类型——使用模板方法模式——编译期检查
泛型的模板方法模式,把创建具体对象的逻辑推迟到模板类的子类去实现。
实例化参数类型有很多种方法,最好的办法就是能够获得编译期检查,这样可以在编译期就能知道程序是否有错误。
如何创建泛型数组——不要使用数组,使用ArrayList
如何创建泛型数组——数组的特点
不管数组是什么类型的,所有的数组都有相同的结构,但是你无法创建一个Object数组然后转型为想要的数组类型,这会在运行时报错。
数组会记住它们的具体类型,这个类型是在创建数组的时候就建立的。
所以即使new Object[SIZE]被强制转型为Generic<Integer>[],这个信息也只是在编译期才存在。在运行的时候,new Object[SIZE]就是一个Object数组。
想要创建泛型数组,只能先创建泛型数组被擦除的之后的数组类型,然后强制转型为泛型数组。
Generic<Integer>[] gia = (Generic<Integer>[]) new Generic[SIZE];
如何创建泛型数组——Array.newInstance
猜你喜欢
- 2024-09-10 感动哭了!《Java 编程思想》最新中文版开源
- 2024-09-10 Java编程思想---对象介绍---参数化类型(泛型)
- 2024-09-10 《JAVA编程思想》5分钟速成:第15章(泛型)
- 2024-09-10 Java基础学习带你了解面向对象的编程思想
- 2024-09-10 Java编程思想——对象介绍——抽象过程
- 2024-09-10 Java编程思想---对象介绍---并发编程
- 2024-09-10 Java编程思想——并发(java并发编程实践和并发编程实战)
- 2024-09-10 Java编程思想:抽象类和方法(java抽象方法是什么)
- 2024-09-10 Java编程思想---万物皆是对象---以引用来操作对象
- 2024-09-10 Java编程思想:我们的第一个 Java 程序
你 发表评论:
欢迎- 05-23Java线程池:核心参数与最佳实践
- 05-23深入理解 Java 的线程池原理
- 05-23面试突击34:如何使用线程池执行定时任务?
- 05-23Java线程池核心参数调优指南:掌控并发世界的钥匙
- 05-23Java线程池:优雅管理并发任务的艺术
- 05-23一篇文章快速搞懂Java中常用的四种线程池
- 05-23Java线程池工作原理深度解读:从创建到任务执行的全过程
- 05-23一文看懂:Java线程池任务拒绝机制解析
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)