2014-02-19 5 views
1

Когда я делаю сериализацию с этим кодом, я получил исключение с нулевым указателем с 'managerL.get (1) .getID()'. Я уверен, что он сериализуется как объект как «managerL.size()» return 1. Когда я пытаюсь открыть manager.ser с HxD, я не могу найти какой-либо из атрибутов моих объектов. Я делаю это неправильно? Как его решить?атрибут не записывается в сериализационный arraylist

Так вот мой код:

  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(); 

      } 
+0

managerL.size() == 1 означает, что элемент 0 будет существовать, но элемент 1 не будет. – BevynQ

+0

show ur Менеджер класса – Sanjeev

ответ

0

Элементы в списке индексируются, начиная с 0 и 1.

нужно изменить код, managerL.get(0).getXXX()

managerL.get(1) выбросит NPE

0

List#get(1) будет работать, если размер списка по крайней мере 2. Ваш список содержит только один объект. Вы должны делать .get(0).

0

Вы должны использовать managerL.get (0), поскольку есть только 1 шт.

Смежные вопросы