User
public class User {
private String name;
private Integer age;
private String sex;
private List<Address> addresses;
}
Address
public class Address {
private String province;
private String city;
private String county;
private String detailed;
}
ChangeField
public class ChangeField {
public static void main(String[] args){
User user = new User();
user.setSex("");
user.setAge(10);
user.setName("zhangsan");
List<Address> list = new ArrayList<>();
Address address1 = new Address();
address1.setProvince("湖北省");
address1.setCity("武汉市");
address1.setCounty("洪山区");
address1.setDetailed("关山");
list.add(address1);
Address address2 = new Address();
address2.setProvince("湖北省");
address2.setCity("武汉市");
address2.setCounty("");
address2.setDetailed("关山");
list.add(address2);
user.setAddresses(list);
setNull(user);
System.out.println(user.toString());
}
public static void setNull(Object changeData) {
Field[] declaredFields = changeData.getClass().getDeclaredFields();
for (Field field : declaredFields) {
field.setAccessible(true);
Type type = field.getGenericType();
try {
Object object = field.get(changeData);
if (object != null) {
if (type.getTypeName().contains("java.util.List")) {
for (Object o : (List) object) {
setNull(o);
}
}
if ("".equals(object.toString())) {
field.set(changeData, null);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}