Utility.convertValue优化

This commit is contained in:
redkale
2023-08-05 09:02:13 +08:00
parent 11d88c887f
commit 30a6e29897

View File

@@ -2696,13 +2696,11 @@ public final class Utility {
return (T) value;
}
final Class clazz = TypeToken.typeToClass(type);
final Class vclz = value.getClass();
if (clazz == vclz) {
final Class vclzz = value.getClass();
if (clazz == vclzz || clazz.isAssignableFrom(vclzz)) {
return (T) value;
} else if (clazz == String.class) {
return (T) value.toString();
} else if (clazz.isAssignableFrom(vclz)) {
return (T) value;
} else if (clazz == double.class || clazz == Double.class) {
if (value instanceof Number) {
return (T) (Number) ((Number) value).doubleValue();
@@ -2723,13 +2721,26 @@ public final class Utility {
if (value instanceof Number) {
return (T) (Number) ((Number) value).shortValue();
}
} else if (clazz == char.class || clazz == Character.class) {
if (value instanceof Number) {
char ch = (char) ((Number) value).intValue();
return (T) (Object) ch;
}
} else if (clazz == byte.class || clazz == Byte.class) {
if (value instanceof Number) {
return (T) (Number) ((Number) value).byteValue();
}
} else if (clazz == boolean.class || clazz == Boolean.class) {
if (value instanceof Number) {
return (T) (Object) (((Number) value).intValue() > 0);
}
}
JsonConvert convert = JsonConvert.root();
return convert.convertFrom(type, convert.convertToBytes(value));
if (CharSequence.class.isAssignableFrom(vclzz)) {
return convert.convertFrom(type, value.toString());
} else {
return convert.convertFrom(type, convert.convertToBytes(value));
}
}
/**