2017-07-06 11 views
1

univocityパーサーを使用して、新規および既存のBeanインスタンスにcsvファイルを解析しようとしています。Univocity parser - csvの行を既存のbeanインスタンスに構文解析します。

ケース1:行はに対応するかをcsvファイルは、私は次のことをやって、今私は戻ってCSVファイルを読みたい

セットAを呼ぶ豆のセットのために、BeanWriterProcessorをunivocity使用して生成されますもともとはセットAにあったBeanで、新しいBeanインスタンスを作成するのではなく、代わりにcsvを「既存の」インスタンスに読み込みます。 (すなわち、インスタンスを「更新」する)。 BeanのUUIDを使って存在を確認します。

ケース2:行が元々セットAに存在するBeanに対応していない場合は、そのBeanインスタンスを新規作成します。

問題解決したい:ケース1の場合、既存のBeanインスタンスにどのように書き込むことができますか?

beanReader.read(targetExistingBean, header, processors); 

がどのように私はunivocityでこれを行うことができます。

supercsvで、私はそのような何かでそれを行うだろうか?

答えて

0

現在、それを行うための唯一の方法は、(使用している方)BeanProcessorまたはBeanListProcessorcreateBeanメソッドをオーバーライドすることにより、次のようになります。

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

は、この情報がお役に立てば幸いです。

関連する問題