0

我有一个如下所示的 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;
}

这就是我将其解析为 Student 对象的方式。

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

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

现在在学生类中,我将标记定义为字符串,因为我在 csv 文件中将它们作为字符串获取。有没有办法在将标记解析为学生对象时直接将标记类型转换为整数,以便我可以使用相同的学生类保存在数据库中,否则我将不得不不必要地创建另一个类。

4

1 回答 1

0

定义字段时可以同时使用 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;
于 2021-08-26T08:46:44.713 回答