一段简单代码运行的古怪问题,大家帮帮忙啊~~

gaofeng0803 2007-12-22 04:00:21
java.sql.Connection con = java.sql.DriverManager.getConnection(url,user,password);
java.sql.Statement stmt = con.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_UPDATABLE);
java.sql.ResultSet rs = stmt.executeQuery("select startDate,endDate,totalDays,type from RT_RecordTime where userId = '20010529162254110' and convert(varchar(7), startDate, 120) = '" + strYear + "-" + strMonth +"'");
System.out.println("******************************************");
List<Calendar> list = new ArrayList<Calendar>();
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
while(rs.next())
{
String startDate = rs.getString(1).toString();
System.out.println(startDate+"????????????????");
cal1.set(Integer.parseInt(startDate.substring(0,4)), Integer.parseInt(startDate.substring(5,7))-1, Integer.parseInt(startDate.substring(8,10)));
String d = sdf.format(cal1.getTime());
System.out.println(d+"KKKKKKKOOOOOOOOOOOOOOOOOOOKKKKKKK");
String endDate = rs.getString(2).toString();
cal2.set(Integer.parseInt(endDate.substring(0,4)), Integer.parseInt(endDate.substring(5,7))-1, Integer.parseInt(endDate.substring(8,10)));
list.add(cal1);
while(cal1.compareTo(cal2) != 0)
{

cal1.add(java.util.Calendar.DATE, 1);
String s = sdf.format(cal1.getTime());
//后面这行显示,cal1放进list前还是各不相同的~~
System.out.println(s+"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVv");
list.add(cal1);
}
}
//晕死,后面这三行输出的结果居然相同,~~
System.out.println(sdf.format(list.get(0).getTime()));
System.out.println(sdf.format(list.get(1).getTime()));
System.out.println(sdf.format(list.get(2).getTime()));
...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
angeldgz 2007-12-22
  • 打赏
  • 举报
回复
cal1 cal2 list[0] list[1] list[2] 是不同的指针(变量),而他们都是指向同一个对象
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
这两句就相当于
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = cal1;
gaofeng0803 2007-12-22
  • 打赏
  • 举报
回复
感谢楼上的回复,不过还是不太明白,你的意思是因为我存进去的都是cal1对象,所以list里面的值都是一样????????
angeldgz 2007-12-22
  • 打赏
  • 举报
回复
Calendar.getInstance() 是获取日历的实例, cal1 和 cal2是指向同一个对象的,和list中的对象一样,list[0] list[1] list[2]也是指向同一个对象d的,就是Calendar的唯一实例.
gaofeng0803 2007-12-22
  • 打赏
  • 举报
回复
大家帮帮忙啊~先谢谢了

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧