日期:2014-05-20  浏览次数:20714 次

求一些关于Vector的用法??
数据表中的记录是
A           A           A               A             A
B           B           B               B             B

在把resultset放到jtable中时,这样写:
Vector   vCell   =   new   Vector();
while   (rs.next())   {
        vCell.clear();
        for   (int   i   =   1;   i   <=   rs.getMetaData().getColumnCount();   i++)
        vCell.add(rs.getObject(i));
        vData.add(vCell);
}
结果table中就是错误的:
A           A           A         A       A
A           A           A         A       A

如果这样写:
Vector   vCell   =   null;
while   (rs.next())   {
        vCell   =   new   Vector();
        for   (int   i   =   1;   i   <=   rs.getMetaData().getColumnCount();   i++)
        vCell.add(rs.getObject(i));
        vData.add(vCell);
}
结果table中就是正确的:
A           A           A               A             A
B           B           B               B             B


这是为什么??第一种写法我不是用vCell.clear()清空了吗?那应该就循环下一条记录啊!!


------解决方案--------------------
vData.add(vCell);
这个add的进去的element是refence,都指向同一块内存,不是具体的字面值。当你再去枚举这个refence指向的内存的值时,他们都指向了你最后一次给他们赋的值。估计应该都是字面值 "B ".