读取带有继承类的csv文件

问题描述 投票:0回答:1
datatype,firstname,lastname,identifier,height,weight,email,hiredate,jobposition,salary,nameschool,graduationyear,major,schoolarship
employee,dawid,kowal,919e,185,54,[email protected],2000-24-05,software,5000
student,mietek,januszewski,43534,143,65,null,null,null,podstawowa,2005,infa,500

如何读取这样的文件?

public class Person {}
public class Employee extends Person{}

方法必须是抗修改的,我们必须读取person之后继承的所有类型

我可以将此 CSV 文件存储到此类吗?

public class CreatePersonCommand {
    private String dataType;
    private Map<String, String> params;
}
java spring-boot csv jackson opencsv
1个回答
0
投票

当您阅读每一行时,测试第一个字段。按每个可能的子类型进行分支:学生、雇员等。

最好使用

switch
表达式来完成分支。

Collection< Person > persons = new ArrayList<>() ;

… // For each row of CSV
persons.add(
    switch ( datatype ) {
        case "employee" -> return new Employee( … ) ;
        case "student" -> return new Student( … ) ;
    }
)
© www.soinside.com 2019 - 2024. All rights reserved.