2017-07-06 36 views
1

我想解析一个csv文件到一个bean的新的和现有的实例,使用univocity解析器。 CSV文件是通过使用单义BeanWriterProcessor,一组豆子,我会打电话给设置A.Univocity分析器 - 解析csv行到现有的bean实例

现在我想读的CSV收回,做产生如下:

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

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

beanReader.read(targetExistingBean, header, processors); 

我怎样才能做到这一点,单义:

在supercsv,我可以用类似的东西做的?

回答

0

目前做的是通过覆盖的BeanProcessorBeanListProcessor(无论你正在使用)的createBean方法的唯一途径:

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

希望这有助于。