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 getFiledName(Object o){ List 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 turnMap(Object o){ try { Map 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---------- */