我试图使用OpenCSV将CSV文件解析成对象列表,这样我就可以将学生数据加载到我的学生团队分配器系统中。
我一直在“将记录解析为Java对象”的标题下遵循本指南
在一些依赖性问题之后,我让它输出一个学生对象列表,但是CSV列没有像应该的那样绑定到成员字段。打印测试为每个对象的字段返回空值。
我在Student中有两个构造函数,一个初始化3个字段,另一个为空。我知道当前使用的是空的,因为删除这个会导致学生对象中的实例化异常。
CSVParser类
public class CSVParser {
private static String CSV_FILE_PATH;
public CSVParser(String CSVPath){
CSV_FILE_PATH = CSVPath;
try (
Reader reader = Files.newBufferedReader(Paths.get(CSV_FILE_PATH));
) {
ColumnPositionMappingStrategy strategy = new ColumnPositionMappingStrategy();
strategy.setType(Student.class);
String[] memberFieldsToBindTo = {"fName", "sName", "stuNumber"};
strategy.setColumnMapping(memberFieldsToBindTo);
CsvToBean csvToBean = new CsvToBeanBuilder(reader)
.withMappingStrategy(strategy)
.withSkipLines(1)
.withIgnoreLeadingWhiteSpace(true)
.build();
List<Student> Students = csvToBean.parse();
for (Student s : Students) {
System.out.println("First Name : " + s.getFirstName());
System.out.println("Second Name : " + s.getSecondName());
System.out.println("StudentNo : " + s.getStudentNumber());
System.out.println("---------------------------");
}
} catch (IOException ex) {
Logger.getLogger(CSVParser.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
学生班
public class Student {
private String fName;
private String sName;
private String stuNumber;
private String skill;
private final String[] skills = {"Planning","Writing","Developing"};
public Student(){
}
public Student(String fName, String sName, String stuNumber) {
this.fName = fName;
this.sName = sName;
this.stuNumber = stuNumber;
}
// Setters
public void setSkill(int skillIndex){
this.skill = skills[skillIndex];
}
public void setFirstName(String fName){
this.fName = fName;
}
public void setSecondName(String sName){
this.sName = sName;
}
public void setStudentNumber(String stuNumber){
this.stuNumber = stuNumber;
}
// Getters
public String getFirstName(){
return fName;
}
public String getSecondName(){
return sName;
}
public String getStudentNumber(){
return stuNumber;
}
// Save to Database
private void saveStudent(){
// DBConnect db = new DBConnect();
}
}
非空构造函数导致的异常
打印测试在学生字段中显示空值
请让我知道我怎样才能把事情说得更清楚,
谢谢
列映射数组中的名称应该响应setter的名称,而不是字段本身。如果找不到与名称对应的setter,则无法设置值。
编辑:FXML文件
我正在创建一个用户信息命令,DiscordJS一直在说 我使用的函数是:让target=message。公会成员。getMember(toFind) 我需要更新DiscordJS的新版本吗?我还没有找到任何东西。 谢谢,裘德·威尔逊
我开始使用(不是命令,只有)。最近,我做了一个频道,名字显示了公会的成员数量,每次有人加入或离开都会更新。这是我的代码: 我还添加了命令上,以便bot将该名称编辑为我键入的任何名称。 现在,在添加了一些用于调试的打印后,我发现,\u member\u join()上的上的
我有一个带有varchar类型电子邮件字段的表。 除表中的一封电子邮件外,其他所有电子邮件都能正常工作。
我在使用Guice时遇到空值问题。Nex我向您展示了一个类似场景的示例。我知道字段注入是一种不好的做法,但我希望它在演示中像这样工作 我有具体类命名为B(这是我要注入的一个): 我有一个名为A的抽象类,它有类B(我想通过字段注入注入的那个): 现在是另一个扩展A的具体类C: 我的GUI配置如下: 然后我对斯波克进行了测试: 谢谢:)
我使用的是Selenium Webdriver的最新版本,我需要将一个元素拖放到CKeditor的anotation字段中,但它不是IFrame。根据我之前的测试,它通过机器人拖放功能与Java和Selenium2以及FF47一起工作。 现在,我需要使用最新版本的Selenium with Python3来执行此操作。我输入了这个经过验证的代码,它应该可以工作,但它会用带有拖动链接的holding