将数据存入到一个对象中,然后再将该对象放入到一个arraylist中。后面从arraylist中取出对象,但是对象里的变量的值变为0,跟null了。有没人遇到过这样的?
ArrayList<OrderBean> al=new ArrayList<OrderBean>();
OrderBean ob=new OrderBean();
ob.setOrdersId(rs.getLong(1));
ob.setUserId(rs.getLong(2));
ob.setOrderDate(rs.getDate(3));
ob.setPayMode(rs.getString(4));
ob.setIsPayed(rs.getByte(5));
ob.setTotalPrice(rs.getFloat(6));
al.add(ob); 这里就是刚存入到arryalist中的值的情况:
 System.out.println("我是分割线---------------------");       
System.out.println(ob.getOrdersId()); 输出:1
System.out.println(ob.getUserId());输出: 1
System.out.println(ob.getOrderDate());输出:2011-06-22
System.out.println(ob.getPayMode());输出:货到付款
System.out.println(ob.getIsPayed());输出:0
System.out.println(ob.getTotalPrice());输出:43.0
System.out.println("我是分割线---------------------");后面再从arraylist中取出对象之后,再把对象中的值取出结果如下:
         
System.out.println("我是分割线一号线---------------------");
System.out.println(ob.getOrdersId());输出:0
System.out.println(ob.getUserId());输出:0
System.out.println(ob.getOrderDate());输出:null
System.out.println(ob.getPayMode());输出:null
System.out.println(ob.getIsPayed());输出:null
System.out.println(ob.getTotalPrice());输出:0.0
System.out.println("我是分割线一号线---------------------");
 怀疑是数据异常或转换异常,但是系统没有报错。而我也指定泛型类型了。这个~~百思不得其解啊~~
不指定泛型也是同样结果!
不用arraylist存,改用vector来,结果还是一样~~求解答求帮助~~ !!

解决方案 »

  1.   

    看你的对象是否是从list中取出来的,我怀疑你就没有放到list中
      

  2.   

    你的对象序列化了吗  implements Serializable
      

  3.   

    请问 LZ 
    ob.setOrdersId(rs.getLong(1));
    ob.setUserId(rs.getLong(2));
    ob.setOrderDate(rs.getDate(3));
    ob.setPayMode(rs.getString(4));
    ob.setIsPayed(rs.getByte(5));
    ob.setTotalPrice(rs.getFloat(6));中的 rs 是哪里来的?
      

  4.   

    总体是这样的,我的是MVC模式开发,然后我具体点说吧。
    在model层,我有一个函数:
    public ArrayList getAllOrder()
    {
      //这里面就是查询数据,连接数据库,返回结果集rs
      //然后将查到的结果集rs放入到我的一个OrderBean对象ob中
      //然后再把ob对象,放入到arraylist中,
      //就是这样嘛:Arraylist al=new Arraylist(); al.add(ub);这里已经是放进去了。
      //最后return 这个arraylist
    }
    然后在control层这里,就是servlet这里,
    我调用我的方法getAllOrder()
    用一个arraylist来接收,之后我再从这个arraylist中取出数据,就变成我上面所说的那些。
      

  5.   


    rs就是查询数据库返回的结果集ResultSet对象~~
      

  6.   


    这个我不太懂,或许你存在这样个问题,你是说我的那个bean的类里应该实现Serializable序列化接口?能具体讲讲吗?
      

  7.   

     楼主把ArrayList<OrderBean> al=new ArrayList<OrderBean>();改成List<OrderBean> al=new ArrayList<OrderBean>();试试。或许也和楼主的实体类中没实现可序列化有关。序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容流化,流化后的对象进行读写操作,也可以将流化后的对象在网络间传输。序列化实现:将需要序列化的对象实现java.io.Serialiable接口,该接口没有需要实现的方法,只是为了标注该对象是可被序列化的。
      

  8.   

    非常奇怪
    我相信你后来取的不是之前存进去的对象
    能把这个ArrayList传递的过程贴出来吗
      

  9.   


    取出的对象这个保证是对的,我100%确定。这个传递过程也很简单的,数据查询到返回al对象,在servlet中取出al对象。就这么简单
      

  10.   


    你把那个方法和servlet里面的处理都贴出来看看