如何在将 csv 字段解析为 java 对象之前进行类型转换
How to do typecasting before parsing csv field to java object
我有一个如下所示的 CSV 文件
Rahul|S|74|72|71
Amrit|S|82|81|80
Akshay|S|82|89|81
我想将字段映射到 java 对象。
我在文件中将所有字段作为字符串获取。
我正在使用 opencsv 将它们转换为 java 对象,如下所示
我的学生 class 看起来像:
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 文件中将它们作为字符串获取。
现在在 Student class 中,我将标记定义为字符串,因为我在 csv 文件中将它们作为字符串获取。
有什么方法可以在将标记解析为 Student 对象时直接将标记类型转换为 Integer 以便我可以使用相同的 Student class 保存在数据库中,否则我将不得不创建另一个 class 不必要的。
定义字段时可以同时使用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;
我有一个如下所示的 CSV 文件
Rahul|S|74|72|71
Amrit|S|82|81|80
Akshay|S|82|89|81
我想将字段映射到 java 对象。 我在文件中将所有字段作为字符串获取。 我正在使用 opencsv 将它们转换为 java 对象,如下所示
我的学生 class 看起来像:
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 文件中将它们作为字符串获取。
现在在 Student class 中,我将标记定义为字符串,因为我在 csv 文件中将它们作为字符串获取。 有什么方法可以在将标记解析为 Student 对象时直接将标记类型转换为 Integer 以便我可以使用相同的 Student class 保存在数据库中,否则我将不得不创建另一个 class 不必要的。
定义字段时可以同时使用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;