title: Write arraylist with different objects to file
body: <p>i'm trying to write an ArrayList, with different objects in it, to a file. This is my ArrayList:</p>
  
  <pre><code>ArrayList&lt;Person&gt; personList = new ArrayList&lt;Person&gt;();
      private Person theCaptain;
  
  
      void init(){
  
      //Adding persons to the list
  
      personList.add(new Coach("Tesan de Boer", "Vieruslaan 3b", "0689337554"));
      personList.add(new Goalkeeper("Peter Post", "Eeuwige student 66", "2222", 1));
      personList.add(new Goalkeeper("piet puk", "Weg van ongenade 88", "2222", 21));
      personList.add(new Goalkeeper("Siem van Aanhoolt", "Straatweg 45", " 0612213446", 31));
      personList.add(new Fielder("Koen Weegink", "Straatweg 45", "2222", 2));
      personList.add(new Fielder("Jan-Willem Rufus op den Haar", "Straatweg 45", " 0614226698", 3));
      personList.add(new Fielder("Tom Kraniker", "Straatweg 45", "069873663", 4));
      personList.add(new Fielder("Leon het Kanon", "Straatweg 45", "2222", 6));
      personList.add(new Fielder("Robin Hogezant", "Straatweg 45", "2222", 7));
      personList.add(new Fielder("Loesoe de Kat", "Straatweg 45", "222", 8));
      personList.add(new Fielder("Morris de Spee", "Straatweg 45", "2222", 9));
      personList.add(new Fielder("Rein Zoekers", "Straatweg 45", "2222", 10));
      personList.add(new Fielder("Darion Pok", "Straatweg 45", "2222", 11));
      personList.add(new Fielder("Achmed de Bom", "Straatweg 45", "2222", 12)); 
  
      }
  </code></pre>
  
  <p>And here i'm trying to write that ArrayList to a file called test:</p>
  
  <pre><code>public class Main {
  
  public static void main(String[] args)throws Exception {
  
      Team team = new Team();
      team.init();
      ArrayList&lt;Person&gt; playersData = team.getPersonList();
  
      try {
  
         // create a new file with an ObjectOutputStream
         FileOutputStream out = new FileOutputStream("test.txt");
         ObjectOutputStream oout = new ObjectOutputStream(out);
  
         // write something in the file
         oout.writeObject(playersData);
  
         // close the stream
         oout.close();
  
         // create an ObjectInputStream for the file we created before
         ObjectInputStream ois = new ObjectInputStream(new FileInputStream("test.txt"));
  
  
  
      } catch (Exception ex) {
         ex.printStackTrace();
      }
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p>When i run the program i get this error:</p>
  
  <pre><code>java.io.NotSerializableException: Coach
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.writeObject(Unknown Source)
  at java.util.ArrayList.writeObject(Unknown Source)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
  at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
      at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.writeObject(Unknown Source)
  at Main.main(Main.java:24)
  </code></pre>
  
  <p>I thought ArrayList implements Serializable, so I don't know why a NotSerializableException is thrown. I hope you guys see why this exception is thrown.</p>
  
  <p>Already thanks!</p>