2014-04-15 3 views
0

제목이 약간 혼란 스럽거나 미혹 될 수 있지만 개체에 목록 (ArrayList)이 들어있는 개체를 디스크에 저장하려고합니다.디스크의 개체 목록을 포함하는 개체를 디스크에 저장

이 개체는 목록 없이는 아무 것도 할 수 없습니다.

개체와 목록의 직렬화를 시도했습니다. 내가 혼자서 객체를 직렬화하려고 시도했을 때 아무 것도 없었습니다. 목록은 비어있었습니다. 리스트를 직렬화하려고 시도했을 때 목록에 액세스 할 수 있었지만 많은 예외가 발생했습니다.

public class AdressBook implements Serializable { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 6399534374362987383L; 

    static Reader reader = new KeyboardReader(); 

    static ArrayList<Contact> AdressBook = new ArrayList<Contact>(); 

    public AdressBook(){ 

    } 

    public static void AddContact(){ 
     AdressBook.add(new Contact()); 
    } 

    public static void EditContact(){ 
     System.out.println("Which contact you desire to edit?"); 
     Libreta.Display(); 
     System.out.println("Type in the number of the contact."); 
     int i = (reader.readint() - 1); 

     System.out.println("Choose the change 1.Name 2.Last Name 3.Nickname 4.Phone number 5.Emails"); 
     int j = reader.readint(); 

       switch(j){ 

     case 1: AdressBook.get(i).setName(); 
       break; 

     case 2: AdressBook.get(i).setLastName(); 
       break; 

     case 3: AdressBook.get(i).setNick(); 
       break; 

     case 4: AdressBook.get(i).AddPhoneNumber(); 
       break; 

     case 5: AdressBook.get(i).AddEmail(); 
       break; 

     default : System.out.println("Not a valid option"); 

     } 

개체의 목록을 편집하고 어떻게 든 다시 저장할 수 있어야합니다. 나는 여러 가지 방법을 시도해 왔지만 지식이 부족하거나 그냥 나에게 도움이되지 않습니다.

+0

정적 변수는 아니다 연재. – GriffeyDog

+0

[자바에서 목록을 직렬화하는 방법?] (http://stackoverflow.com/questions/1387954/how-to-serialize-a-list-in-java)을보십시오. – Braj

답변

0

정적 변수가 직렬화되지 않으므로 주소록 변수를 정적으로 선언하면 안됩니다.

public class AddressBook implements Serializable { 
... 
    ArrayList<Contact> contacts = new ArrayList<Contact>(); 
... 
} 
0

나는 당신의 문제가 당신의 ArrayList를 정적 필드라고 생각합니다 (때로는 클래스 필드라고도 함) 및 직렬화 클래스의 개체 인스턴스에서 발생하지 걸릴 : 그것은이 같은 인스턴스 (비 정적) 변수 확인 .

따라서 정적 필드와 정적 메서드를 동일하게 대체해야합니다.

(지금은 그냥 댓글 : 자바 명명 규칙을 사용하여 시도해야 - 필드와 방법 이름에 대한 낮은 이니셜을 사용하여 - 자바 코더 당신을 이해하는 것이 훨씬 쉽게 ... ;-)

관련 문제