方案一、用Field赋值
Field field = fields[j];
if(field.trySetAccessible()) {
field.set(obj, v);
}
方案一、用Method赋值
for (int j = 0; j < methods.length; j++) {// 为对象赋值
String metdName = methods[j].getName();
if (equalFieldAndSet(fieldName, metdName)) {
// TODO 按照
Method method = methods[j];
Class<?>[] parameterTypes = method.getParameterTypes();
if (parameterTypes != null) {
if (parameterTypes.length == 1) {
try {
Class<?> paramType = parameterTypes[0];
Object v = bson;
switch (paramType.getSimpleName()) {
case "String":
v = String.valueOf(bson);
break;
case "int":
v = (Integer) bson;
break;
// ...
default:
break;
}
methods[j].invoke(obj, v);
} catch (Exception e) {
e.printStackTrace();
}
}
}
break;
}
}