如何在将csv字段解析为java对象之前进行类型转换



我有一个像下面这样的CSV文件

Rahul|S|74|72|71
Amrit|S|82|81|80
Akshay|S|82|89|81

我想把这些字段映射到一个java对象。我得到的所有字段作为字符串在文件中。我正在使用下面的opencsv将它们转换为java对象

我的学生班级将是这样的:

public class Student {
@CsvBindByPosition(position = 0)
private String name;
@CsvBindByPosition(position = 1)
private String mathsScore;
@CsvBindByPosition(position = 2)
private String scienceScore;
@CsvBindByPosition(position = 3)
private String englishScore;
}

这就是我如何解析它的学生对象。

List<Student> studentsList = new CSVToBeanBuilder(new FileReader(csvFile))
.withType(Student.class)
.build().parse();

我正在解析csv字段到java对象,因为我想将它们存储在数据库中在我的数据库标记是整数,但我得到他们作为字符串在csv文件。

现在在学生类我已经定义标记为字符串,因为我得到它们作为字符串在csv文件。是否有任何方法可以将标记直接类型转换为Integer,同时将它们解析为Student对象,以便我可以使用相同的Student类保存在DB中,否则我将不得不不必要地创建另一个类。

在定义字段时可以同时使用Integer和int。

在下面的示例:

@CsvBindByPosition(position = 0)
public String macAddress;
@CsvBindByPosition(position = 1)
public int seqID;
@CsvBindByPosition(position = 2)
public Integer digital1;
@CsvBindByPosition(position = 3)
public Integer digital2;
@CsvBindByPosition(position = 4)
public Integer digital3;
@CsvBindByPosition(position = 5)
public Integer digital4;
@CsvBindByPosition(position = 6)
public Double col1;
@CsvBindByPosition(position = 7)
public Double col2;
@CsvBindByPosition(position = 8)
public Double col3;
@CsvBindByPosition(position = 9)
public Double col4;
@CsvBindByPosition(position = 10)
public Double col5;
@CsvBindByPosition(position = 11)
public Double col6;
@CsvBindByPosition(position = 12)
public Long timeStamp;

—已编辑—

日期:

@CsvBindByPosition(position = 2)
@CsvDate(value = "dd.MM.yyyy")
private Date birthDate;

相关内容

  • 没有找到相关文章

最新更新