【发布时间】:2021-10-26 07:35:54
【问题描述】:
我有一个如下所示的 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 文件中将它们作为字符串获取。 有没有办法在将标记解析为 Student 对象时直接将标记类型转换为 Integer,以便我可以使用相同的 Student 类保存在 DB 中,否则我将不得不创建另一个不必要的类。
【问题讨论】:
-
不确定那个api,但它不允许你完全定义bean吗?如果是这样,您可以尝试类似
this.mathsScore = Integer.parseInt(mathsScore);的 this 看起来很有希望
标签: java csv opencsv csv-parser