java 复制对象属性 忽略大小写和下划线
2022-05-07 09:40:16
public static Object beanTobeanLowerCase(Object object, Class<?> cls) throws Exception {
Object obj = cls.newInstance();
if (object != null) {
Class<?> clsOld = object.getClass();
Field[] fieldsOld = clsOld.getDeclaredFields();
Field[] fields = obj.getClass().getDeclaredFields();
for (Field fieldOld : fieldsOld) {
String fieldNameOld = fieldOld.getName().replace("-", "");
int modOld = fieldOld.getModifiers();
if (Modifier.isPrivate(modOld) && !Modifier.isFinal(modOld)) {
fieldOld.setAccessible(true);
for (Field field : fields) {
String fieldName = field.getName();
int mod = field.getModifiers();
if (Modifier.isPrivate(mod) && !Modifier.isFinal(mod)) {
field.setAccessible(true);
if (fieldNameOld.equalsIgnoreCase(fieldName)) {
// 商标唯一标识 忽略
if ("id".equalsIgnoreCase(fieldNameOld)) {
break;
}
field.set(obj, fieldOld.get(object));
break;
}
}
}
}
}
}
return obj;
}