No tienes nada claro qué es un constructor ni cómo se crean las clases.
Cita: public Person(int idUser, String username, String realname, String locality,
Date birthDate, int privacy, String country, ArrayList<Person> friends)
Pasas como parámetro una lista que no existe para crearla en el método, eso es un fallo de concepto enorme.
Código Javascript
:
Ver originalpublic class Person {
private/public idUser;
...
private List <Person> friends = new ArrayList <Person>();
public Person(int idUser, String username, String realname, String locality,
Date birthDate, int privacy, String country){
this.idUser=idUser;
...
}
...
public void addFriend(Person friend){
this.friends.add(friend);
}
}
También podrías hacer el new desde el constructor, pero nunca pasar como parámetro un objeto sin inicializar.