2

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

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

案例 1:如果该行对应于最初存在于集合 A 中的 bean,我不想创建新的 bean 实例,而是将 csv 读入“现有”实例。(即“更新”实例)。我通过使用 bean 的 UUID 检查存在。

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

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

在 supercsv 中,我可以这样做:

beanReader.read(targetExistingBean, header, processors);

我怎样才能做到这一点?

4

1 回答 1

2

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

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);
    }
};

希望这可以帮助。

于 2017-07-09T03:12:13.423 回答