我有一个像下面这样的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;