java 动态创建对象
来源:互联网 发布:oecd下载数据 编辑:程序博客网 时间:2024/06/11 03:34
原博地址:http://www.cnblogs.com/zhangnanblog/archive/2012/04/27/2473820.html
做项目的时候遇到一个问题,就是需要动态加载类并实例化对象.现在分享给大家!
另外说句题外话,Class.forName("").newInstance();用于工厂真的是挺好的,有用到的时候你可以试试!
简单介绍下:Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作。因此,单单使用Class.forName( )是动态加载类是没有用的,其最终目的是为了实例化对象。
上代码的说:
先是父类代码:
1 package com.test.entity;2 3 public class ItemBase {4 public String toString(){5 return "ItemBae";6 }7 8 }
子类代码:
package com.test.entity;public class ItemA extends ItemBase{ private String name; private String age; @Override public String toString(){ return "A的name:"+name+",A的age:"+age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
package com.test.entity;public class ItemB extends ItemBase{ private String name; private String age; @Override public String toString(){ return "B的name:"+name+",B的age:"+age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
工厂代码:
package com.test.factory;import com.entity.test.entity.ItemBase;public class Factory { public static ItemBase createObj(String className) throws Exception{ return (ItemBase)Class.forName(className).newInstance(); }
用法
public class Test { public static void main(String[] args) { ItemBase itemBase=(ItemBase)Factory.createObj("com.test.entity.ItemA"); System.out.println("A:"+itemBase.toString()); itemBase=(ItemBase)Factory.createObj("com.test.entity.ItemB"); System.out.println("B"+itemBase.toString()); }}
这里只是个示范,你可以去把你的类配置到xml去动态的读取,只需改XML你就能得到你想要的类`~用法很多`~ 我只是简单的演示下
0 0
- java 动态创建对象
- 利用java反射机制动态创建对象
- java动态代理对象实例的创建
- Java策略模式+反射动态创建对象
- 动态创建对象
- 动态创建对象
- 动态创建dom对象
- 动态创建对象
- 动态创建DataTable对象
- 动态对象创建(一)
- 动态创建对象实例
- MFC动态创建对象
- 动态创建DOM对象
- Protobuf 动态创建对象
- 动态创建对象
- 动态创建对象
- Unity3d 动态创建对象
- 反射动态创建对象
- [Kafka]_1
- RabbitMQ消息队列(五):Routing 消息路由[转]
- 课上问题
- MongoDB分片集群与复制集
- 51Nod 1631 小鲨鱼在51Nod小学 【 扫描线 】
- java 动态创建对象
- 217. Contains Duplicate
- Android之解决输入法软键盘弹出挤压屏幕或覆盖控件问题
- dubbo分布式项目开发____dubbo服务调用开发
- Two Sum
- 378. Kth Smallest Element in a Sorted Matrix
- 1116. Come on! Let's C (20)
- Java文件下载相关设置
- 从一副牌中选4张牌显示其花色和字母