Java问题与设置值

时间:2013-11-21 08:05:22

标签: java arraylist getter-setter

我有以下Java代码;

List<Person> personList = new ArrayList<Person>();
response = executeQuery(query);

for(Object[] person : response.getRecords()) {
    Person per = new Person();
    per.setPersonName((String)person[0]);   
    //Setting other values      
    personList.add(per);
}

正如您所看到的,我从查询执行中获得响应并获取一个我想在自定义类Person中设置的对象数组。

我在Person;

中有以下设定器
public void setPersonName(String personName) {
        this.personName = personName;
}

现在发生了一些奇怪的事情。我正确地得到了响应并在调试时,如果我检查/观察person[0],它会给我正确的值test1

但是当我做per.setPersonName((String)person[0]);

时,它没有设置相同

personName设为null

我已验证personName的{​​{1}}类型。

如果我做错了,请告诉我。

2 个答案:

答案 0 :(得分:0)

  

我从查询执行中获得响应并获取对象数组   我试图在我的自定义类Person中设置。

如果你的循环返回Object[]而不是循环应该像

for(Object obj : response.getRecords()) {
        Person per = new Person();
        per.setPersonName(/*parse obj to get pserson name*/);   

        personList.add(per);
 }

答案 1 :(得分:0)

由于您尚未发布response.getRecords()方法的代码,我无法确定,但这可能是问题所在:

如果使用JDBC检索记录,则需要在访问行之前调用ResultSet.next(),因为ResultSet游标最初位于第一行之前;对方法的第一次调用使得第一行成为当前行;第二个调用使第二行成为当前行,依此类推。