简单的spring使用反射实现属性赋值demo
来源:互联网 发布:淘宝活动页面代码 编辑:程序博客网 时间:2024/06/05 20:54
class Domain implements Serializable {private String name;private Date date;public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}@Overridepublic String toString() {return "Domain [name=" + name + ", date=" + date + "]";}}
class MyDomain implements Serializable {private String name;private Integer id;private Domain domain;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Domain getDomain() {return domain;}public void setDomain(Domain domain) {this.domain = domain;}@Overridepublic String toString() {return "MyDomain [name=" + name + ", id=" + id + ", domain=" + domain+ "]";}}
package com.concurrent;import java.beans.PropertyEditorSupport;import java.text.ParseException;import java.text.SimpleDateFormat;public class DomainEditor extends PropertyEditorSupport {private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");@Overridepublic void setAsText(String text) throws IllegalArgumentException {String[] toke = text.split("\\|");String name = toke[0];String date = toke[1];Domain domain = new Domain();domain.setName(name);try {domain.setDate(DATE_FORMAT.parse(date));} catch (ParseException e) {throw new IllegalArgumentException(e);}setValue(domain);}}
package com.concurrent;import java.beans.PropertyDescriptor;import java.beans.PropertyEditor;import java.beans.PropertyEditorManager;import java.io.Serializable;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.Date;import java.util.HashMap;import java.util.Map;public class Test002 {private static final Field[] FIELDS = MyDomain.class.getDeclaredFields();static {PropertyEditorManager.registerEditor(Domain.class, DomainEditor.class);}public static void main(String[] args) throws Exception {Map<String, String> map = new HashMap<String, String>();map.put("name", "老王");map.put("id", "1");map.put("domain", "laozhang|1989-05-09 11:11:11");MyDomain myDomain = stringToDomain(map);System.out.println(myDomain);}public static MyDomain stringToDomain(Map<String, String> map)throws Exception {MyDomain myDomain = new MyDomain();for (Field field : FIELDS) {PropertyDescriptor propertyDescriptor = new PropertyDescriptor(field.getName(), MyDomain.class);Method method = propertyDescriptor.getWriteMethod();if (field.getType() == String.class) {method.invoke(myDomain, map.get(field.getName()));} else if (field.getType() == Integer.class) {method.invoke(myDomain,Integer.parseInt(map.get(field.getName())));} else {PropertyEditor editor = PropertyEditorManager.findEditor(Domain.class);if (editor != null) {editor.setAsText(map.get(field.getName()));method.invoke(myDomain, editor.getValue());} else {System.out.println("wrong properties!!" + field.getName());}}}return myDomain;}}
0 0
- 简单的spring使用反射实现属性赋值demo
- golang实现简单的反射demo
- java 反射实现实体类的属性赋值
- 泛型、反射使用 比较类型 为类的属性赋值
- 使用Spring实现属性文件给常量赋值
- spring简单的demo
- Spring的简单Demo
- 利用“反射”给类的属性赋值。
- 使用 Spring scheduling 实现简单跑批 demo
- 反射机制的实现demo
- 关于在Java使用反射对属性取值和赋值的性能问题。
- java使用反射给对象属性赋值的两种方法
- Spring IOC的简单实现(附demo)
- spring注解方式实现Cache的简单Demo
- Quartz 集成Spring实现简单的任务调度Demo
- 利用java反射实现两个具有相同属性bean赋值
- 利用java反射实现两个具有相同属性bean赋值
- 利用fastjson和反射实现为VO属性赋值
- 在centos上配置redis集群
- 重绘UITableViewCell分割线
- 关于时间显示为今天、昨天、星期一之类的格式问题
- Lucene分词器解析-代码篇
- Emacs折腾01-配置文件重定向
- 简单的spring使用反射实现属性赋值demo
- IOS开发选择图片(相机或者图库)
- Layout 的clone
- oracle--物化视图
- opencl:改造C++接口增加对内存编译(compile)的支持
- 使用NSThread让字体一个一个弹出
- mysql查询今天、昨天、上周
- 自定义初学2——扩展View
- FragmentTabHost、Fragment实现底部点击切换Tab页面