java ArrayList循环增加add(对象)总是被最后一个覆盖,把new 对象放在循环里面也是,求大神帮忙 20
BufferedReaderreader;reader=SystemUtil.read();//这是自定义的读取文件的Stringline;SimpleDateForma...
BufferedReader reader;
reader=SystemUtil.read();//这是自定义的读取文件的
String line;
SimpleDateFormat sdf=SystemUtil.timeFormat();
List<Employee> list=new ArrayList<Employee>();
try {
while((line=reader.readLine())!=null){
Employee emp=new Employee();
String[] part=line.split("\\:");
emp.setPayrollNum(part[0]);
emp.setPhoneNum(part[1]);
emp.setLastName(part[2]);
emp.setFirstName(part[3]);
emp.setInitial(part[4]);
emp.setDepartNum(Integer.parseInt(part[5]));
emp.setJobTitle(part[6]);
try {
emp.setHireDate(sdf.parse(part[7]));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
list.add(emp);
}
} catch (IOException e) {}
return list; 展开
reader=SystemUtil.read();//这是自定义的读取文件的
String line;
SimpleDateFormat sdf=SystemUtil.timeFormat();
List<Employee> list=new ArrayList<Employee>();
try {
while((line=reader.readLine())!=null){
Employee emp=new Employee();
String[] part=line.split("\\:");
emp.setPayrollNum(part[0]);
emp.setPhoneNum(part[1]);
emp.setLastName(part[2]);
emp.setFirstName(part[3]);
emp.setInitial(part[4]);
emp.setDepartNum(Integer.parseInt(part[5]));
emp.setJobTitle(part[6]);
try {
emp.setHireDate(sdf.parse(part[7]));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
list.add(emp);
}
} catch (IOException e) {}
return list; 展开
7个回答
展开全部
你的类成员有静态的,所以最后一次修改时等于把所有类成员变量改了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有被覆盖,你打断点试试
追问
你是说BUG运行么,试过了part的值总是为String[8],这是为什么啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你确定会被覆盖?好好检查一下是不是别的问题
追问
好像不是被覆盖,每次都可以生成不同的对象,但是ArrayList list每次都访问最后一个对象
追答
你在 list.add(emp); 和 return list; 这地方都输出看看里面的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码写的没问题
读取的文件应该有问题
读取的文件应该有问题
更多追问追答
追问
文件应该没问题啊
追答
代码是没问题的
我仔细看了下
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询