You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在@CsvBindByName注解中使用OR条件读取多份CSV文件?

解决多列名CSV文件的单Bean类读取问题

问题描述

我需要读取多份CSV文件,其中部分文件的列名存在差异,示例如下:

CSV1 和 CSV3:

| Column A | Column B |
| --- | --- |
| FirstNameL | LastNameL |

CSV2:

| Column A | Column B |
| --- | --- |
| First_Name | Last_Name |

希望通过单个Bean类读取这些不同列名的数据,比如实现类似@CsvBindByName(column = "FirstNameL" OR column = "First_Name")的效果。现有Bean类代码如下:

public class Test {
@CsvBindByName(column = "FirstNameL")
private String first_Name ;

@CsvBindByName(column = "LastNameL")
private String last_Name;

//getters and setters
}

解决方案

OpenCSV的@CsvBindByName注解本身支持多列名匹配,只需给column属性传入包含所有目标列名的数组即可,无需额外逻辑。

修改后的Bean类代码如下:

public class Test {
    @CsvBindByName(column = {"FirstNameL", "First_Name"})
    private String first_Name;

    @CsvBindByName(column = {"LastNameL", "Last_Name"})
    private String last_Name;

    // getters and setters
}

这样读取不同列名的CSV文件时,OpenCSV会自动匹配数组中的任意一个列名,将对应值注入到Bean属性中,可直接适配CSV1、CSV2、CSV3的格式。

内容的提问来源于stack exchange,提问作者RakhiJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 21:44:56