private static void setSendEmailDto(OrdOrderSendEmailDto dto){
Field[] field = dto.getClass().getDeclaredFields();
try{
for (int i = 0; i < field.length; i++) {
String name = field[i].getName();
name = name.substring(0, 1).toUpperCase() + name.substring(1);
String type = field[i].getGenericType().toString();
// 这里我只判断类型是String 和List的, 具体可根据对象属性类型去添加判断
if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名
Method m = dto.getClass().getMethod("get" + name);
String value = (String) m.invoke(dto); // 调用getter方法获取属性值
if (value == null) {
m = dto.getClass().getMethod("set"+name,String.class);
m.invoke(dto, "测试数据");
}
}else if (type.equals("java.util.List<com.*.*.*.dto.OrdOrderDetailSendEmailDto>")){// 这里填写的是List对象的全路径
List<OrdOrderDetailSendEmailDto> list=new ArrayList<>();
OrdOrderDetailSendEmailDto emailDto=new OrdOrderDetailSendEmailDto();
Field[] fieldName = emailDto.getClass().getDeclaredFields();
for (int j = 0; j < fieldName.length; j++) {
String fieldNames = fieldName[j].getName();
fieldNames = fieldNames.substring(0, 1).toUpperCase() + fieldNames.substring(1);
String types = fieldName[j].getGenericType().toString();
if (types.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名
Method method = emailDto.getClass().getMethod("get" + fieldNames);
String value = (String) method.invoke(emailDto); // 调用getter方法获取属性值
if (value == null) {
method = emailDto.getClass().getMethod("set"+fieldNames,String.class);
method.invoke(emailDto, "测试数据");
}
}
}
list.add(emailDto);
Method m = dto.getClass().getMethod("get" + name);
List value = (List) m.invoke(dto); // 调用getter方法获取属性值
if (value == null) {
m = dto.getClass().getMethod("set"+name,List.class);
m.invoke(dto, list);
}
}
}
}catch (NoSuchMethodException e){
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
OrdOrderSendEmailDto dto=new OrdOrderSendEmailDto();
setSendEmailDto(dto);
}
打印结果