gpt4 book ai didi

java - OpenCSV - 如何将选定的列映射到 Java Bean 而不管顺序如何?

转载 作者:IT老高 更新时间:2023-10-28 20:22:17 25 4
gpt4 key购买 nike

我有一个包含以下列的 CSV 文件:idfnametelephonelname地址

我有一个 Person 类,其中包含 idfnamelname 数据成员。我只想将这些列映射到 CSV 文件中的 Person 对象并丢弃 telephoneaddress 列。我怎样才能做到这一点?随着将来添加更多列,该解决方案必须扩展。并且无论列位置如何都应该工作。

在理想的解决方案中,用户只会指定要读取的列,它应该可以正常工作。

最佳答案

您可以使用 HeaderColumnNameTranslateMappingStrategy .假设您的 CSV 包含以下列:IdFnameTelephoneLnameAddress 为简单起见。

CsvToBean<Person> csvToBean = new CsvToBean<Person>();

Map<String, String> columnMapping = new HashMap<String, String>();
columnMapping.put("Id", "id");
columnMapping.put("Fname", "fname");
columnMapping.put("Lname", "lname");

HeaderColumnNameTranslateMappingStrategy<Person> strategy = new HeaderColumnNameTranslateMappingStrategy<Person>();
strategy.setType(Person.class);
strategy.setColumnMapping(columnMapping);

List<Person> list = null;
CSVReader reader = new CSVReader(new InputStreamReader(ClassLoader.getSystemResourceAsStream("test.csv")));
list = csvToBean.parse(strategy, reader);

columnMapping 会将列映射到您的 Person 对象。

关于java - OpenCSV - 如何将选定的列映射到 Java Bean 而不管顺序如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13505653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com