Java动态调用实体的get方法
作者:互联网
/**
* 动态调用实体的get方法(注意返回值)
* @param dto 实体
* @param name 动态拼接字段
* @return {@link String}
* @date 2021/10/26 11:06
* @version 1.0.0 <br/>
**/
public static String getValue(Object dto, String name) {
String val = "无数据";
try {
if (StringUtils.isEmpty(name)) return val;
Method m = dto.getClass().getMethod(("get" + toUpperCase4Index(name)));
// 调用getter方法获取属性值
//java.sql.Timestamp类型转换
if (m.getGenericReturnType().equals(java.sql.Timestamp.class)){
String format = DateUtil.format(DateUtil.timeToDate((Timestamp) m.invoke(dto)), DateUtil.YMD_DASH_WITH_TIME);
val = null == format ? "无数据": format;
//java.util.Date类型转换
}else if (m.getGenericReturnType().equals(java.util.Date.class)){
String format = DateUtil.format((Date) m.invoke(dto), DateUtil.YMD_DASH_WITH_TIME);
val = null == format ? "无数据": format;
}else {
val = StringUtils.isNotEmpty((String)m.invoke(dto)) ? (String)m.invoke(dto) : "无数据";
}
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
return val;
}
标签:DateUtil,调用,dto,String,val,format,get,Java,invoke 来源: https://www.cnblogs.com/fxsenblog/p/15467397.html