码迷,mamicode.com
首页 > 其他好文 > 详细

反射如何判断对象类型并实现强中类型转换

时间:2019-08-06 13:46:18      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:shm   voc   pat   message   anti   pop   turn   sage   one   

public static List<Object> readCsvIntoVO(String readPath, Class<?> clazz) {
List<Object> result = new ArrayList<>();
Field[] fields = clazz.getDeclaredFields();


try {
// 以#分割
CsvReader csvReader = new CsvReader(readPath,‘,‘, Charset.forName("UTF-8"));
csvReader.readHeaders(); // 跳过表头 如果需要表头的话,不要写这句。
String[] head = csvReader.getHeaders(); //获取表头
while (csvReader.readRecord())
{
Object record = clazz.newInstance();
Map<String, String> map = new HashMap<String, String>();
for (String s : head) {
String name = s.trim();
if (name.charAt(0) == ‘\uFEFF‘) {
name = name.substring(1);
}
map.put(name,csvReader.get(s));
System.out.println(s + ":" + csvReader.get(s));
// String name = s.trim();
// for (Field field : fields) {
// field.setAccessible(true);
//
// if (name.equals(field.getName())) {
// Method method = clazz.getMethod("set" + name.substring(0, 1).toUpperCase() + name.substring(1), field.getType());
// method.invoke(record, StringUtils.get(field.getType(),csvReader.get(s)));
// break;
// }
// }


// Field f = record.getClass().getDeclaredField(s);
// f.setAccessible(true);
// f.set(record, csvReader.get(s));
}
BeanUtils.populate(record, map);
result.add(record);
}
csvReader.close();
} catch (FileNotFoundException e) {
throw new RuntimeException("文件未找到");
} catch (IOException e) {
throw new RuntimeException(e.getMessage());
} catch (IllegalAccessException | InstantiationException | InvocationTargetException e) {
e.printStackTrace();
}
return result;
}

反射如何判断对象类型并实现强中类型转换

标签:shm   voc   pat   message   anti   pop   turn   sage   one   

原文地址:https://www.cnblogs.com/neaos/p/11308220.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!