java 反射 haspmap --->Object
2016-08-26 00:17
393 查看
import java.math.BigDecimal; import java.util.Date; /** * Created with IntelliJ IDEA * * @author: parkerqian * Date: 16/8/25 * Time: 21:59 * To change this template use File and Code Templates */ public class Student extends Address{ private String name; private int age; private Date brithday; private boolean isrich; private Integer rank; private Color lovecolor; private char mchar; private BigDecimal amout; private Double price; private Long pick; private Float myfolat; private Byte mybyte; private Short myshort; private Color color; public Color getColor() { return color; } public void setColor(Color color) { this.color = color; } public Float getMyfolat() { return myfolat; } public void setMyfolat(Float myfolat) { this.myfolat = myfolat; } public Byte getMybyte() { return mybyte; } public void setMybyte(Byte mybyte) { this.mybyte = mybyte; } public Short getMyshort() { return myshort; } public void setMyshort(Short myshort) { this.myshort = myshort; } public Long getPick() { return pick; } public void setPick(Long pick) { this.pick = pick; } public Double getPrice() { return price; } public void setPrice(Double price) { this.price = price; } public BigDecimal getAmout() { return amout; } public void setAmout(BigDecimal amout) { this.amout = amout; } public char getMchar() { return mchar; } public void setMchar(char mchar) { this.mchar = mchar; } public Color getLovecolor() { return lovecolor; } public void setLovecolor(Color lovecolor) { this.lovecolor = lovecolor; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBrithday() { return brithday; } public void setBrithday(Date brithday) { this.brithday = brithday; } public boolean isIsrich() { return isrich; } public void setIsrich(boolean isrich) { this.isrich = isrich; } public Integer getRank() { return rank; } public void setRank(Integer rank) { this.rank = rank; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + ", brithday=" + brithday + ", isrich=" + isrich + ", rank=" + rank + ", lovecolor=" + lovecolor + ", mchar=" + mchar + ", amout=" + amout + ", price=" + price + ", pick=" + pick + ", myfolat=" + myfolat + ", mybyte=" + mybyte + ", myshort=" + myshort + ", color=" + color + '}'; } }
public enum Color {
RED(1,"红色"),
BLACK(2,"黑色");
Color(int code,String desc){
this.code=code;
this.desc=desc;
}
int code;
String desc;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
public class Address { private String address; private long zipcode; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public long getZipcode() { return zipcode; } public void setZipcode(long zipcode) { this.zipcode = zipcode; } @Override public String toString() { return "Address{" + "address='" + address + '\'' + ", zipcode=" + zipcode + '}'; } }
import java.lang.reflect.Field; import java.math.BigDecimal; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; /** * Created with IntelliJ IDEA * * @author: parkerqian * Date: 16/8/25 * Time: 21:56 * To change this template use File and Code Templates */ public class ReflectionUtils { public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException, ParseException { HashMap<String,String> hashMap=new HashMap<String, String>(); hashMap.put("name","Jordan"); hashMap.put("age","13"); hashMap.put("isrich","true"); hashMap.put("mchar","s"); hashMap.put("address","上海虹口区"); hashMap.put("rank","3"); hashMap.put("brithday","1988-12-13 10:12:15"); hashMap.put("amout","200"); hashMap.put("price","30.02"); hashMap.put("pick","223"); hashMap.put("myfolat","123.03f"); hashMap.put("mybyte","43"); hashMap.put("color","RED"); Student student= (Student)mapToObject(Student.class.newInstance(),hashMap); System.out.println(student.toString()); System.out.println(student.getAddress()+" "+student.getZipcode()); } private static List<Field> getAllFields(Object object){ Class<?> clazz=object.getClass(); List<Field> fieldList = new ArrayList<Field>(); while (clazz != null){ Field[] fields = clazz.getDeclaredFields(); Collections.addAll(fieldList, fields); clazz = clazz.getSuperclass(); } return fieldList; } public static Object mapToObject(Object object,HashMap<String,String> hashMap) throws IllegalAccessException, ClassNotFoundException, ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List<Field> fieldList = getAllFields(object); for (Map.Entry<String, String> entry : hashMap.entrySet()) { for(Field field:fieldList){ if(field.getName().equals(entry.getKey())){ field.setAccessible(true); System.out.println(entry.getKey()+":"+field.getType()+" :"+field.getType().getSimpleName()); if ("Boolean".equals(field.getType().getSimpleName())) { field.set(object, entry.getValue().equals("true")); } else if ("BigDecimal".equals(field.getType().getSimpleName())) { field.set(object, new BigDecimal(entry.getValue())); } else if ("Date".equals(field.getType().getSimpleName())) { field.set(object, simpleDateFormat.parse(entry.getValue())); } else if ("Timestamp".equals(field.getType().getSimpleName())) { field.set(object, Timestamp.valueOf(entry.getValue())); } else if (field.getType().isEnum()) { field.set(object, Enum.valueOf((Class<Enum>) field.getType(), entry.getValue())); } else if ("int".equals(field.getType().getSimpleName()) || "Integer".equals(field.getType().getSimpleName())) { field.set(object, Integer.parseInt(entry.getValue())); } else if ("String".equals(field.getType().getSimpleName())) { field.set(object, entry.getValue()); }else if ("char".equals(field.getType().getSimpleName())) { field.set(object, entry.getValue().toCharArray()[0]); }else if ("Double".equals(field.getType().getSimpleName())) { field.set(object, Double.parseDouble(entry.getValue())); }else if ("Long".equals(field.getType().getSimpleName())) { field.set(object, Long.parseLong(entry.getValue())); }else if ("Short".equals(field.getType().getSimpleName())) { field.set(object, Short.parseShort(entry.getValue())); 9ddb }else if ("Byte".equals(field.getType().getSimpleName())) { field.set(object, Byte.parseByte(entry.getValue())); }else if ("Float".equals(field.getType().getSimpleName())) { field.set(object, Float.parseFloat(entry.getValue())); }else if(field.getType().isEnum()){ field.set(object,Enum.valueOf((Class<Enum>) field.getType(), entry.getValue())); } } } } return object; } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序