Boa tarde, estou tendo problemas com o seguinte código: package br.com.bancoteste.banco.test.util;
import java.util.ArrayList; import java.util.Comparator; import java.util.List;
import br.com.bancoteste.banco.modelo.Cliente; import br.com.bancoteste.banco.modelo.Conta; import br.com.bancoteste.banco.modelo.ContaCorrente; import br.com.bancoteste.banco.modelo.ContaPoupanca;
public class Teste {
public static void main(String[] args) {
Conta cc1 = new ContaCorrente(22, 33);
Cliente clienteCC1 = new Cliente();
clienteCC1.setNome("Nico");
cc1.setTitular(clienteCC1);
cc1.deposita(333.0);
Conta cc2 = new ContaPoupanca(22, 44);
Cliente clienteCC2 = new Cliente();
clienteCC2.setNome("Guilherme");
cc2.setTitular(clienteCC2);
cc2.deposita(444.0);
Conta cc3 = new ContaCorrente(22, 11);
Cliente clienteCC3 = new Cliente();
clienteCC3.setNome("Paulo");
cc3.setTitular(clienteCC3);
cc3.deposita(111.0);
Conta cc4 = new ContaPoupanca(22, 22);
Cliente clienteCC4 = new Cliente();
clienteCC4.setNome("Ana");
cc4.setTitular(clienteCC4);
cc4.deposita(222.0);
List<Conta> lista = new ArrayList<>();
lista.add(cc1);
lista.add(cc2);
lista.add(cc3);
lista.add(cc4);
for (Conta conta : lista) {
System.out.println(conta);
}
NumeroDaContaComparator comparator = new NumeroDaContaComparator();
TitularDaContaComparator titularComparator = new TitularDaContaComparator();
lista.sort(titularComparator);
System.out.println("----------------------------------------");
for (Conta conta : lista) {
System.out.println(conta + ", " + conta.getTitular().getNome());
}
}
}
class TitularDaContaComparator implements Comparator {
@Override
public int compare(Conta c1, Conta c2) {
String nomeC1 = c1.getTitular().getNome();
String nomeC2 = c2.getTitular().getNome();
return nomeC1.compareTo(nomeC2);
}
}
class NumeroDaContaComparator implements Comparator {
@Override
public int compare(Conta c1, Conta c2) {
if (c1.getNumero() < c2.getNumero()) {
return -345;
}
if (c1.getNumero() > c2.getNumero()) {
return 1;
}
return 0;
}
}
Ele apresenta o seguinte erro :
Exception in thread "main" java.lang.NullPointerException at br.com.bancoteste.banco.test.util.TitularDaContaComparator.compare(Teste.java:70) at br.com.bancoteste.banco.test.util.TitularDaContaComparator.compare(Teste.java:1) at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355) at java.util.TimSort.sort(TimSort.java:220) at java.util.Arrays.sort(Arrays.java:1512) at java.util.ArrayList.sort(ArrayList.java:1454) at br.com.bancoteste.banco.test.util.Teste.main(Teste.java:52)
O que está acontecendo?