把csv转成对象,获取的字段全部为string类型的,
private Object convertClass(Field field , Object val) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
Class<?> typeCla = field.getType();
String v = (String) val;
if (!typeCla.isPrimitive()) { // 判断基本类型
if(typeCla.equals(String.class)){ // 如果是string则直接返回
return v ;
}
// 如果不为null 则通过反射实例一个对象返回
return "".equals(v)?null:typeCla.getConstructor(String.class).newInstance(v);
}
// 下面处理基本类型,返回包装类
String name = typeCla.getName();
switch (name){
case "String": return v;
case "int": return Integer.parseInt(v);
case "byte": return Byte.parseByte(v);
case "boolean": return Boolean.parseBoolean(v);
case "double": return Double.parseDouble(v);
case "float": return Float.parseFloat(v);
case "long": return Long.parseLong(v);
case "short": return Short.parseShort(v);
default: return v;
}
}
网友评论