Univocity 解析器 - 将 csv 行解析为现有的 bean 实例

Univocity parser - parse csv row into existing bean instance

我正在尝试使用 univocity 解析器将 csv 文件解析为 bean 的新实例和现有实例。 csv 是通过使用 univocity BeanWriterProcessor 生成的,用于我将称为集合 A 的一组 bean。

现在我想读回 csv,执行以下操作:

情况 1:如果该行对应于最初存在于集合 A 中的 bean,我不想创建新的 bean 实例,而是将 csv 读入 "existing" 实例。 (即 "update" 实例)。我使用 bean 的 UUID 检查是否存在。

情况2:如果该行不对应于集合A中最初存在的bean,我想为其创建一个新的bean实例。

我要解决的问题:对于案例1,我如何写入一个现有的bean实例?

在 supercsv 中,我可以这样做:

beanReader.read(targetExistingBean, header, processors);

我怎样才能做到这一点?

目前,唯一的方法是覆盖 BeanProcessorBeanListProcessorcreateBean 方法(无论您使用哪个):

BeanListProcessor<Car> carProcessor = new BeanListProcessor<Car>(Car.class){
    @Override
    public Car createBean(String[] row, Context context) {
        //analyze the row here to determine whether to return an existing instance
        //if you need a new instance, call super.createBean(row, context);
    }
};

希望对您有所帮助。