Sobrescrevi o método compareTo
na classe Conta
para comparar os nomes dos clientes da seguinte forma:
@Override
public int compareTo(Conta outra) {
return this.nome.compareTo(outra.nome);
}
Em seguida, na classe TestaOrdenacao
tentei imprimir o nome dos clientes em ordem:
public class TestaOrdenacao {
public static void main(String[] args) {
List<Conta> contas = new ArrayList<>();
Random random = new Random();
Conta c1 = new ContaCorrente();
c1.setSaldo(random.nextInt(10) + random.nextDouble());
c1.setNome("João");
contas.add(c1);
Conta c2 = new ContaCorrente();
c2.setSaldo(random.nextInt(10) + random.nextDouble());
c2.setNome("Carlos");
contas.add(c2);
Conta c3 = new ContaCorrente();
c3.setSaldo(random.nextInt(10) + random.nextDouble());
c3.setNome("Roberto");
contas.add(c3);
Collections.sort(contas);
for(Conta conta : contas) {
System.out.println(conta);
}
}
}
Ao rodar o main, aparece no console o seguinte erro:
Exception in thread "main" java.lang.NullPointerException at br.com.empresa.banco.conta.Conta.compareTo(Conta.java:77) at br.com.empresa.banco.conta.Conta.compareTo(Conta.java:1) at java.util.ComparableTimSort.countRunAndMakeAscending(Unknown Source) at java.util.ComparableTimSort.sort(Unknown Source) at java.util.Arrays.sort(Unknown Source) at java.util.Arrays.sort(Unknown Source) at java.util.List.sort(Unknown Source) at java.util.Collections.sort(Unknown Source) at br.com.empresa.banco.TestaOrdenacao.main(TestaOrdenacao.java:28)
Por fim, o código compila normalmente, o eclipse não acusa erro algum em nenhuma das classes. Porque está ocorrendo a Exception?