2017-07-06 95 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); 
    } 
}; 

希望這有助於。