属性未记录在序列化arraylist中

时间:2014-02-19 03:36:31

标签: java serialization deserialization

当我使用此代码进行序列化时,我得到了'managerL.get(1).getID()'的空指针异常。我确信它被序列化为对象'managerL.size()'返回1.当我尝试用HxD打开manager.ser时,我找不到任何对象属性。我做错了吗?怎么解决?

所以这是我的代码:

            List <manager>managerL=null;
            manager NEW=new manager(nID,nName,nPW);
            managerL.add(NEW);
            try{
                FileOutputStream fOut = new FileOutputStream("manager.ser");
                ObjectOutputStream out = new ObjectOutputStream(fOut);
                out.writeObject(managerL); //write NEW into manager.ser
                out.close(); 
                fOut.close();
                System.out.println("new user is able to login, try and see~");
            }catch(IOException ex){
                ex.printStackTrace();

            }

3 个答案:

答案 0 :(得分:0)

如果列表大小至少为2,

List#get(1)将起作用。您的列表只有一个对象。你应该做.get(0)

答案 1 :(得分:0)

列表中的元素从0和1开始编制索引。

需要将代码修改为managerL.get(0).getXXX()

managerL.get(1)会抛出NPE

答案 2 :(得分:0)

你应该使用managerL.get(0),因为只有一个项目。