测试完善 Kv.toAs
This commit is contained in:
@@ -96,7 +96,10 @@ public class Kv<K,V> extends LinkedHashMap<K,V> {
|
||||
private static Predicate<Class> isNumber = (t) -> {
|
||||
return t == Integer.class || t == int.class
|
||||
|| t == Long.class || t == long.class
|
||||
|| t == float.class || t == Float.class
|
||||
|| t == Double.class || t == double.class
|
||||
|| t == Short.class || t == short.class
|
||||
|| t == Byte.class || t == byte.class
|
||||
;
|
||||
};
|
||||
|
||||
@@ -119,9 +122,11 @@ public class Kv<K,V> extends LinkedHashMap<K,V> {
|
||||
case "Short": v1 = (short)(long) v; break;
|
||||
case "float":
|
||||
case "Float": v1 = (float)(long) v; break;
|
||||
case "byte":
|
||||
case "Byte": v1 = (byte)(long) v; break;
|
||||
default: v1 = v;
|
||||
}
|
||||
} else if (v.getClass() == Double.class && clazz != Double.class) {
|
||||
} else if (v.getClass() == Double.class) {
|
||||
if (isNumber.test(clazz)) {
|
||||
switch (clazz.getSimpleName()) {
|
||||
case "long":
|
||||
@@ -132,6 +137,8 @@ public class Kv<K,V> extends LinkedHashMap<K,V> {
|
||||
case "Short": v1 = (short)(double) v; break;
|
||||
case "float":
|
||||
case "Float": v1 = (float)(double) v; break;
|
||||
case "byte":
|
||||
case "Byte": v1 = (byte)(double) v; break;
|
||||
default: v1 = v;
|
||||
}
|
||||
} else if (clazz == String.class){
|
||||
@@ -141,7 +148,6 @@ public class Kv<K,V> extends LinkedHashMap<K,V> {
|
||||
switch (clazz.getSimpleName()) {
|
||||
case "Date":
|
||||
v1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse((String) v); break;
|
||||
//string ==> number
|
||||
case "short":
|
||||
case "Short": v1 = (short)Double.parseDouble((String) v); break;
|
||||
case "float":
|
||||
@@ -152,18 +158,32 @@ public class Kv<K,V> extends LinkedHashMap<K,V> {
|
||||
case "Long": v1 = (long)Double.parseDouble((String) v); break;
|
||||
case "double":
|
||||
case "Double": v1 = Double.parseDouble((String) v); break;
|
||||
case "byte":
|
||||
case "Byte": v1 = Byte.parseByte((String) v); break;
|
||||
default: v1 = v;
|
||||
}
|
||||
} else if (v.getClass() == Integer.class) {
|
||||
switch (clazz.getSimpleName()) {
|
||||
case "long":
|
||||
case "Long": v1 = (long) (int) v; break;
|
||||
case "int":
|
||||
case "Integer": v1 = (int) v; break;
|
||||
case "short":
|
||||
case "Short": v1 = (short) (int) v; break;
|
||||
case "float":
|
||||
case "Float": v1 = (float) (int) v; break;
|
||||
case "byte":
|
||||
case "Byte": v1 = (byte)(int) v; break;
|
||||
default: v1 = v;
|
||||
}
|
||||
} else if (v.getClass() == Float.class) {
|
||||
switch (clazz.getSimpleName()) {
|
||||
case "long":
|
||||
case "Long": v1 = (long) (float) v; break;
|
||||
case "int":
|
||||
case "Integer": v1 = (int) (float)v; break;
|
||||
case "short":
|
||||
case "Short": v1 = (short) (float) v; break;
|
||||
case "byte":
|
||||
case "Byte": v1 = (byte)(float) v; break;
|
||||
default: v1 = v;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user