亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 java 中以通用方式編寫此方法

如何在 java 中以通用方式編寫此方法

qq_遁去的一_1 2023-06-04 11:06:47
目前,我為五個不同的類實現了這個方法,為五個不同的文本文件配置 FlatFileReader 并加載到數據庫表中。我想知道有沒有一種方法可以在一個常見的地方實現這個方法,這樣我的每個文件都會調用這個方法來配置我的閱讀器來讀取它們相應的文件。每個文件都會發送不同的實體類來加載它們的文件。像主要實體、ChildEntity1、ChildEntity2、ChildEntity3、ChildEntity4。private void flatFileItemReaderConfig(FlatFileItemReader<PrimaryEntity> flatFileReader,        String fileName, String incomingHeader){    // set delimiter as '|'    DefaultLineMapper<PrimaryEntity> defaultLineMapper = new DefaultLineMapper<>();    DelimitedLineTokenizer delimitedLineTokenizer = new DelimitedLineTokenizer("|");    delimitedLineTokenizer.setNames(convertHeaderToEntityAttrib(fileName, incomingHeader));    defaultLineMapper.setLineTokenizer(delimitedLineTokenizer);    // convert each record into primaryentity    BeanWrapperFieldSetMapper<PrimaryEntity> beanWrapperFieldSetMapper = new BeanWrapperFieldSetMapper<>();    beanWrapperFieldSetMapper.setTargetType(PrimaryEntity.class);    beanWrapperFieldSetMapper.setCustomEditors(getCustomFormatters());    defaultLineMapper.setFieldSetMapper(beanWrapperFieldSetMapper);    flatFileReader.setLineMapper(defaultLineMapper);}
查看完整描述

1 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

向方法中添加泛型


private <T> void flatFileItemReaderConfig(FlatFileItemReader<T> flatFileReader, String fileName, String incomingHeader, Class<T> clazz) {


    // set delimiter as '|'

    DefaultLineMapper<T> defaultLineMapper = new DefaultLineMapper<>();


    DelimitedLineTokenizer delimitedLineTokenizer = new DelimitedLineTokenizer("|");

    delimitedLineTokenizer.setNames(convertHeaderToEntityAttrib(fileName, incomingHeader));

    defaultLineMapper.setLineTokenizer(delimitedLineTokenizer);


    // convert each record into primary entity

    BeanWrapperFieldSetMapper<T> beanWrapperFieldSetMapper = new BeanWrapperFieldSetMapper<>();

    beanWrapperFieldSetMapper.setTargetType(clazz);

    beanWrapperFieldSetMapper.setCustomEditors(getCustomFormatters());

    defaultLineMapper.setFieldSetMapper(beanWrapperFieldSetMapper);

    flatFileReader.setLineMapper(defaultLineMapper);

}

如果您只想將使用限制為列出的實體,請創建一個由所有具體實體 ( PrimaryEntity, ChildEntity1, ChildEntity2, ChildEntity3, ChildEntity4) 實現的通用接口實體,并將簽名更改為


private <T extends Entity> void flatFileItemReaderConfig(...)


查看完整回答
反對 回復 2023-06-04
  • 1 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號