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

Posted neaos

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射如何判断对象类型并实现强中类型转换相关的知识,希望对你有一定的参考价值。

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;

以上是关于反射如何判断对象类型并实现强中类型转换的主要内容,如果未能解决你的问题,请参考以下文章

在.Net中如何判断一个属性是值类型还是引用类型

反射给对象赋值——类型转换

c#反射判判断某个对象的某个属性是不是string类型

概述反射和序列化?

java如何动态修改一个对象的类型

Go基础面向对象和反射机制