I'm trying to implement a genealogical tree in Java but I came across this problem that I can not solve:
Exception in thread "main" java.lang.NullPointerException at Arvore.antecessores(Arvore.java:11) at Arvore.antecessores(Arvore.java:12) at Arvore.antecessores(Arvore.java:12) at Main.main(Main.java:14)
Does anyone have any idea how to solve it?
public class Main {
public static void main(String[] args) {
Arvore genealofica = new Arvore();
Pessoa joao = new Pessoa("Joao", null, null);
Pessoa maria = new Pessoa("Maria", null, null);
Pessoa adele = new Pessoa("Adele", maria, joao);
Pessoa barney = new Pessoa("Barney", null, adele);
genealofica.adicionar(joao);
genealofica.adicionar(maria);
genealofica.adicionar(adele);
genealofica.adicionar(barney);
genealofica.antecessores(barney);
}
}
///////////////////////////////
import java.util.ArrayList;
public class Arvore {
ArrayList<Pessoa> arvoreGenealogica = new ArrayList<Pessoa>();
public void adicionar(Pessoa qualquer){
arvoreGenealogica.add(qualquer);
}
public void antecessores(Pessoa a){
if(!a.getPai().equals(null)){
antecessores(a.getPai());
}
if(!a.getMae().equals(null)){
antecessores(a.getMae());
}
else {
System.out.println(a.getNome());
}
}
}
//////////////////////////////////
public class Pessoa {
private String nome;
private Pessoa mae;
private Pessoa pai;
public Pessoa(String nome, Pessoa mae, Pessoa pai){
setMae(mae);
setPai(pai);
setNome(nome);
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setMae(Pessoa mae) {
this.mae = mae;
}
public Pessoa getMae() {
return mae;
}
public void setPai(Pessoa pai) {
this.pai = pai;
}
public Pessoa getPai() {
return pai;
}
}