现在有一个表格解析,用的是EasyExce,现在表格可能有两种,两种表格表头不一致,也就是会得到不同的类,但是因为是同一个业务,所以我想把它们做成一个抽象类里面然后写不同的实现,但是现在遇见一个问题,EasyExcel的读取需要传入一个class作为读取出的参数类型,但是现在这么写可以编译,但是会发生类型转换异常,asbdto是我的两个需要映射出来的类的父类,但是它不能转成DTO的运行时我输入的类型。
请问有什么办法么?DTO是泛型标识,在实现类或者运行时它是AbsDto的子类
protected List<DTO> parse(InputStream in){
List<DTO> list=new CopyOnWriteArrayList<>();
EasyExcel.read(in,AbsDto.class ,new AnalysisEventListener<DTO>() {
// 每读取一行数据, 该方法会被调用一次
@Override
public void invoke(DTO testExcel, AnalysisContext analysisContext) {
list.add(testExcel);
}
// 全部读取完成被调用
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
log.debug("表格读取完成");
}
}).sheet(0).headRowNumber(0).doRead();