package cn.huge.base.common.utils;
|
|
import com.google.common.collect.Maps;
|
import org.springframework.stereotype.Component;
|
|
import java.lang.reflect.Field;
|
import java.lang.reflect.Method;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @title: 实体工具类
|
* @description: 实体工具类
|
* @company: hugeinfo
|
* @author: liyj
|
* @time: 2021-11-05 16:51:48
|
* @version: 1.0.0
|
*/
|
@Component
|
public class FieldUtils {
|
|
/**
|
* 获取所有属性名
|
* @param o 实体类
|
* @return List
|
*/
|
public static List<String> getFiledName(Object o){
|
List<String> fieldNames = new ArrayList<>();
|
Field[] fields = o.getClass().getDeclaredFields();
|
for(Field field: fields){
|
fieldNames.add(field.getName());
|
}
|
return fieldNames;
|
}
|
|
/**
|
* 实体类转map
|
* @param o 实体类
|
* @return Map
|
*/
|
public static Map<String, Object> turnMap(Object o){
|
try {
|
Map<String, Object> resut = Maps.newHashMap();
|
Field[] fields = o.getClass().getDeclaredFields();
|
for (Field field : fields) {
|
//获取属性名
|
String name = field.getName();
|
//获取属性值
|
Object value = getValueByName(name, o);
|
resut.put(name, value);
|
}
|
return resut;
|
}catch (Exception e){
|
return null;
|
}
|
}
|
|
/**
|
* 根据属性名获取属性值
|
* @param fieldName 属性名称
|
* @param o 实体类
|
* @return
|
*/
|
public static Object getValueByName(String fieldName, Object o) {
|
try {
|
String firstLetter = fieldName.substring(0, 1).toUpperCase();
|
String getter = "get" + firstLetter + fieldName.substring(1);
|
Method method = o.getClass().getMethod(getter, new Class[] {});
|
Object value = method.invoke(o, new Object[] {});
|
return value;
|
} catch (Exception e) {
|
return null;
|
}
|
}
|
}
|
/**
|
* -------------------_ooOoo_-------------------
|
* ------------------o8888888o------------------
|
* ------------------88" . "88------------------
|
* ------------------(| -_- |)------------------
|
* ------------------O\ = /O------------------
|
* ---------------____/`---'\____---------------
|
* -------------.' \\| |// `.-------------
|
* ------------/ \\||| : |||// \------------
|
* -----------/ _||||| -:- |||||- \-----------
|
* -----------| | \\\ - /// | |-----------
|
* -----------| \_| ''\---/'' | |-----------
|
* -----------\ .-\__ `-` ___/-. /-----------
|
* ---------___`. .' /--.--\ `. . __----------
|
* ------."" '< `.___\_<|>_/___.' >'"".-------
|
* -----| | : `- \`.;`\ _ /`;.`/ - ` : | |-----
|
* -----\ \ `-. \_ __\ /__ _/ .-` / /-----
|
* ======`-.____`-.___\_____/___.-`____.-'======
|
* -------------------`=---='
|
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
* ---------佛祖保佑---hugeinfo---永无BUG----------
|
*/
|