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


    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;
    }
  • 相关阅读:
    章节三、2-方法_演示实例
    章节三、1-方法
    章节二、5-数组
    章节二、4-String以及StringBuffer和StringBuilder的对比
    章节二、3-字符串类方法
    章节二、2-String 引用数据类型-字符串类
    章节二、1-java概述-数据类型
    需求管理做不好,等着9-12-7吧
    谈谈软件项目的风险管理
    《Spring Boot Cook Book》阅读笔记
  • 原文地址:https://www.cnblogs.com/neaos/p/11308220.html
Copyright © 2020-2023  润新知