//本方法只是参考
public static void setFieldNotNull(Object obj) throws Exception {
getField(obj.getClass(), obj);
}
private static void getField(Class<?> clazz, Object obj) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException, InstantiationException {
if (clazz == null) return;
Field[] declaredFields = clazz.getDeclaredFields();
for (Field field : declaredFields) {
field.setAccessible(true);
if (field.get(obj) == null) {
if (field.getType().toString().equals("class java.lang.String")) {
field.set(obj, "");
} else if (field.getType().toString().equals("class java.lang.Integer")) {
field.set(obj, 0);
} else if (field.getType().toString().equals("class java.math.BigDecimal")) {
field.set(obj, new BigDecimal("0.0"));
} else if (field.getType().toString().equals("class java.lang.Long")) {
field.set(obj, 0L);
} else {
Constructor<?> constructor = field.getType().getConstructor();
Object curObj = constructor.newInstance();
field.set(obj, curObj);
getFields(field.getType(), curObj);
}
} else {
if ((field.getType().toString().equals("class java.lang.String")
|| field.getType().toString().equals("class java.lang.Integer")
|| field.getType().toString().equals("class java.math.BigDecimal")
|| field.getType().toString().equals("class java.lang.Long"))) {
} else {
getField(field.getType(), field.get(obj));
}
}
}
clazz = clazz.getSuperclass();
getField(clazz, obj);
}
JAVA 指定属性默认值 java 类属性设置默认值
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章