Utility.convertValue优化
This commit is contained in:
@@ -2696,13 +2696,11 @@ public final class Utility {
|
|||||||
return (T) value;
|
return (T) value;
|
||||||
}
|
}
|
||||||
final Class clazz = TypeToken.typeToClass(type);
|
final Class clazz = TypeToken.typeToClass(type);
|
||||||
final Class vclz = value.getClass();
|
final Class vclzz = value.getClass();
|
||||||
if (clazz == vclz) {
|
if (clazz == vclzz || clazz.isAssignableFrom(vclzz)) {
|
||||||
return (T) value;
|
return (T) value;
|
||||||
} else if (clazz == String.class) {
|
} else if (clazz == String.class) {
|
||||||
return (T) value.toString();
|
return (T) value.toString();
|
||||||
} else if (clazz.isAssignableFrom(vclz)) {
|
|
||||||
return (T) value;
|
|
||||||
} else if (clazz == double.class || clazz == Double.class) {
|
} else if (clazz == double.class || clazz == Double.class) {
|
||||||
if (value instanceof Number) {
|
if (value instanceof Number) {
|
||||||
return (T) (Number) ((Number) value).doubleValue();
|
return (T) (Number) ((Number) value).doubleValue();
|
||||||
@@ -2723,13 +2721,26 @@ public final class Utility {
|
|||||||
if (value instanceof Number) {
|
if (value instanceof Number) {
|
||||||
return (T) (Number) ((Number) value).shortValue();
|
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) {
|
} else if (clazz == byte.class || clazz == Byte.class) {
|
||||||
if (value instanceof Number) {
|
if (value instanceof Number) {
|
||||||
return (T) (Number) ((Number) value).byteValue();
|
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();
|
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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user