



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
隐式和显示的创建类型实例。1.隐式建类型实例我们上一章节提到下面有问题的代码:?123456789101112package com.ray.ch11;public class Test public void test(Object object)/ System.out.println(object instanceof T);/error/ System.out.println(new T();/error/ System.out.println(new T10);/errorSystem.out.println(T)object );/waring解决的方法就是下面的代码:?12345678910111213141516171819202122232425package com.ray.ch11;import java.lang.reflect.Array;public class Test private Class kind;public Test(Class t) kind = t;public void test(Object object) System.out.println(kind.isInstance(object);try System.out.println(kind.newInstance(); catch (InstantiationException e) e.printStackTrace(); catch (IllegalAccessException e) e.printStackTrace();System.out.println(Array.newInstance(kind, 10);System.out.println(T) object);/ waring但是,表面上没有太大的问题,因为我们是基于这个类有默认的构造器,我们来看看下面的代码:?123456789101112131415161718192021222324package com.ray.ch11;public class Test private Class kind;public Test(Class t) kind = t;public void test() try System.out.println(kind.newInstance(); catch (InstantiationException e) e.printStackTrace(); catch (IllegalAccessException e) e.printStackTrace();public static void main(String args) new Test(Integer.class).test();输出:java.lang.InstantiationException: java.lang.Integerat java.lang.Class.newInstance0(Class.java:340)at java.lang.Class.newInstance(Class.java:308)at com.ray.ch11.Test.test(Test.java:12)at com.ray.ch11.Test.main(Test.java:21)我们减少了一些代码,但是主体还留着,然后我们在里面放上Integer这个类,我们可以从输出那里看见,直接报错,原因是Integer没有默认的构造函数。由于上面出现的问题,因此我们推荐下面显示创建类型对象的方式。2.显示的创建类型实例(1)利用工厂对象来约束实现?1234567891011121314151617181920package com.ray.ch11;public class Test public static void main(String args) new IntegerFactory().create();interface IFactory T create();class IntegerFactory implements IFactory Overridepublic Integer create() return new Integer(0);(2)通过模版方法设计模式来约束实现?12345678910111213141516171819202122232425262728293031package com.ray.ch11;public class Test public static void main(String args) new IntegerFactory().show();abstract class AFactory public final T obj;public AFactory() obj = create();abstract public T create();class IntegerFactory extends AFactory Overridepublic Integer create() return new Integer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 20xx重阳节晚会主持词4篇
- 农作物加工副产品环保型膨松剂创新创业项目商业计划书
- 网红法律咨询服务与权益保护创新创业项目商业计划书
- 教师招聘之《小学教师招聘》能力检测试卷附答案详解【综合题】
- 押题宝典教师招聘之《幼儿教师招聘》通关考试题库附参考答案详解【培优b卷】
- 教师招聘之《小学教师招聘》通关模拟卷及参考答案详解(基础题)
- 教师招聘之《小学教师招聘》题库检测模拟题及参考答案详解(a卷)
- 2025江西吉安市青原区司法局招聘2人笔试模拟试题及答案解析
- 2025年精准医疗领域:基因检测在罕见遗传病诊断中的应用准确性深度报告
- 2025年绿色建筑示范项目资金申请绿色建筑产业发展规划与战略报告
- 中式面点课件
- 抖店内衣考试题库及答案
- 黄金回收合同协议书模板
- 招商局集团招聘考试真题2024
- 《提升思维高度:战略思维培养与应用》课件
- 认知障碍老人护理步骤
- 《云南的茶文化》课件
- 腰大池引流管护理查房
- 钢材采购知识培训课件
- 科学宫施工组织设计
- 2025年春季形势与政策-从教育大国迈向教育强国
评论
0/150
提交评论