in spec/src/main/java/com/aliyun/dataworks/common/spec/utils/SpecDevUtil.java [474:508]
private static void setSimpleField(Map<String, Object> ctxMap, Object object, List<Field> entityFields) {
// parse simple type
for (Field field : entityFields) {
Object value = ctxMap.get(field.getName());
if (value == null) {
continue;
}
Class<?> fieldType = field.getType();
try {
if (fieldType.equals(Integer.TYPE) || fieldType.equals(Integer.class)) {
setValue(object, field, Integer.valueOf(value.toString()));
} else if (fieldType.equals(Long.TYPE) || fieldType.equals(Long.class)) {
setValue(object, field, Long.valueOf(value.toString()));
} else if (fieldType.equals(Float.TYPE) || fieldType.equals(Float.class)) {
setValue(object, field, Float.valueOf(value.toString()));
} else if (fieldType.equals(Double.TYPE) || fieldType.equals(Double.class)) {
setValue(object, field, Double.valueOf(value.toString()));
} else if (fieldType.equals(Boolean.TYPE) || fieldType.equals(Boolean.class)) {
setValue(object, field, Boolean.valueOf(value.toString()));
} else if (fieldType.equals(Character.TYPE) || fieldType.equals(Character.class)) {
setValue(object, field, value.toString().charAt(0));
} else if (fieldType.equals(String.class)) {
setValue(object, field, value.toString());
} else if (fieldType.equals(BigDecimal.class)) {
setValue(object, field, value.toString());
}
} catch (Exception e) {
throw new SpecException(e, SpecErrorCode.FIELD_SET_FAIL,
"Type conversion error.\n" + "Expect type: " + fieldType.getSimpleName()
+ "\nActual value:"
+ value);
}
}
}