public static <T> T init(T t, Object val) {
Object value;
Method method;
StringBuffer sb;
String fieldname;
Class<? extends Object> clz = t.getClass();
Field[] fields = clz.getDeclaredFields();
for (Field field : fields) {
if (!"class java.lang.String".equals(field.getGenericType())) {
fieldname = field.getName();
sb = new StringBuffer("et");
sb.append(Character.toUpperCase(fieldname.charAt(0))).append(fieldname.substring(1));
try {
method = clz.getMethod(sb.insert(0, 'g').toString());
value = method.invoke(t);
if (null == value) {
method = clz.getDeclaredMethod(sb.deleteCharAt(0).insert(0, 's').toString(), field.getType());
method.invoke(t, val.toString());
}
} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e) {
e.printStackTrace();
}
}
}
return t;
}
java通过反射给实体属性赋值
最新推荐文章于 2024-07-13 03:13:33 发布