import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student implements Serializable {
private Long aLong;
private long aLong2;
private BigDecimal bigDecimal;
private float aFloat;
private Float aFloat2;
private double aDouble;
private Double aDouble2;
private String name;
}
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.math.BigDecimal;
public class ReflectValue {
public static void main(String[] args) throws Exception {
Student student = new Student();
System.out.println(setObject(student));
}
private static Object setObject(Object object) throws Exception {
Field[] fields = object.getClass().getDeclaredFields();
for (Field field : fields) {
String str = field.getName().substring(0, 1).toUpperCase();
String get = "get" + str + field.getName().substring(1);
Method method = object.getClass().getMethod(get);
if (method.invoke(object) == null||method.invoke(object).equals("")) {
field.setAccessible(true);
field.set(object, setValue(field));
}
}
return object;
}
private static Object setValue(Field field) {
if (field.getType().equals(Float.class) || field.getType().equals(float.class)) {
return 0f;
} else if (field.getType().equals(double.class) || field.getType().equals(Double.class)) {
return 0d;
} else if (field.getType().equals(String.class)) {
return "";
} else if (field.getType().equals(Long.class) || field.getType().equals(long.class)) {
return 0l;
} else if (field.getType().equals(BigDecimal.class)) {
return new BigDecimal("0");
}
return null;
}
}
