Yeah, they would allow different configurations for other goodies. I'm glad you like it :)
I would use the first one for simplicity. Another approach can be with repeating annotations(since Java 8 is minimum supported version) and adding something like profiles/strategies: @CsvBindByName(column="column1", profile="profile1") @CsvBindByName(column="column2", profile="profile2") private String field; and during building reader or writer user can tell which profile/strategy is used: .withProfileName("profile1") What do you think?
To be honest I don't think it would break backward compatibility as you can define String[] as column="value" column={"value"} column={"value", "value2"} For my use case I gather data from multiple CSV files with different header names. Currently I have to map them into multiple beans. The data has the same bussines meaning under different headers depending on source.
To be honest I don't think it would break backward compatibility as you can define String[] as column="value" column={"value"} column={"value", "value"} For my use case I gather data from multiple CSV files with different header names. Currently I have to map them into multiple beans. The data has the same bussines meaning under different headers depending on source.
I saw that feature in few other CSV libraries and though it would be pretty easy to implement. As for second point do you think ignoring empty lines should be available also in CsvReaderBuilder to keep consistency across all readers?
Multiple columns for CsvBindByName annotation
Ignoring comment lines