package com.sunrise.jop.common.util;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
/**
* 对象工具类
* */
public class MyObjectUtil {
/**
* 将对象转为map
* Student{
* private int age ;
* private String name;
*
* }
* Student student = new Student("zhangsan",13)
* Map map = MyObjectUtil.objectToMap(student);
* map格式为{age=13,name="zhangsan"}
* */
public static Map<String,Object> objectToMap(Object obj){
if(obj==null) return null;
Class<?> cls = null;
try {
String className = obj.getClass().getName();
cls = Class.forName(className);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
if(cls==null) return null ;
Map<String,Object> map = new HashMap<String,Object>();
Field fields[] = cls.getDeclaredFields();
for(int i = 0 ; i < fields.length ; i++){
String methodName = fields[i].getName();
String handleMethodName = "get" +firstCharacterToUpperCase(methodName);
try {
Method getNameMethod = cls.getMethod(handleMethodName);
Object value = getNameMethod.invoke(obj);
map.put(methodName, value);
} catch (Exception e) {
e.printStackTrace();
}
}
return map;
}
/**
* 首字母大写
* */
public static String firstCharacterToUpperCase(String str){
if(str==null) return null;
StringBuffer sb = new StringBuffer(str);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
str = sb.toString();
return str;
}
}