HashMap ocorrendo NullPointerException

3 respostas
diegohsi
Boa tarde pessoal, esta ocorrendo um NullPointerException e não consigo compreender o porquê. Mesmo sem usar generics teria que dar certo né?
package collection_caelum;

public class ContaPoupanca implements Comparable<ContaPoupanca>{
	private int numero;
	private String nomeCliente;
	private long saldo;
	
	public void setNumero(int num) {
		this.numero = num;
	}
	
	public void setNomeCliente(String nome) {
		this.nomeCliente = nome;
	}
	
	public String getNomeCliente() {
		return this.nomeCliente;
	}
	
	public int getNumero(){
		return this.numero;
	}
	
	public void deposita(long valor) {
		this.saldo = valor;
	}
	
	public long getSaldo() {
		return this.saldo;
	}
	
	public int compareTo(ContaPoupanca outra) {
		
		//Faz ordenação pelo numero da conta
		
		/*if(this.getNumero() > outra.getNumero())	{
			return 1;
		}
		if(this.getNumero() < outra.getNumero()){
			return -1;
		}
		return 0;*/
		
		
		
		
		//Faz ordenação pelo nome do cliente
		
		return this.getNomeCliente().compareTo(outra.getNomeCliente()); /*Como nomeCliente é uma variável 
		do tipo String não precisamos fazer mas nada além de comparar os 2 nomes pois o proprio método
		compareTo ja é ordenado por ordem natural pelo motivo da classe String implementar a Interface Comparable
		e o método comapareTo()*/
		
	}
}
package collecoes_caelum_3_map;
import collection_caelum.*;
import java.util.*;

public class TesteMap {

	public static void main(String[] args) {
		
		ContaPoupanca c1 = new ContaPoupanca();
		c1.deposita(1000);
		
		ContaPoupanca c2 = new ContaPoupanca();
		c2.deposita(2000);
		
		ContaPoupanca c3 = new ContaPoupanca();
		c3.deposita(3000);
		
		ContaPoupanca c4 = new ContaPoupanca();
		c4.deposita(4000);
		
		
		Map contas = new HashMap();
		
		contas.put("João", c1);
		contas.put("Maria", c2);
		contas.put("Gerente", c3);
		contas.put("Diretor", c4);
		
		//Quero achar a conta do diretor e quero mostrar o saldo da conta do diretor
		Map contaDiretor = new HashMap();
		ContaPoupanca saldoDiretor = (ContaPoupanca)contaDiretor.get("Diretor");
		
		System.out.println(saldoDiretor.getSaldo());
		
	}
	
}

3 Respostas

sf.marcius

em TesteMap :

na linha 27 vc adicionou a ContaPoupanca do diretor no Map chamado contas.

na linha 31 vc está tentando fazer o get no Map contaDiretor, mas quem possui o “Diretor” é o contas

rmendes08

O problema é que na linha 30 você cria uma HashMap vazia e tentar obter uma conta dela. Com a HashMap está vazia você obtém null e atribui a saldoDiretor. Como saldoDiretor é null você vai obter a exceção quando tentar invocar saldoDiretor.getSaldo().

diegohsi

Muito obrigado rmendes e sf.marcius, nossa que erro mais mirim em rsrsrs

Criado 5 de novembro de 2010
Ultima resposta 5 de nov. de 2010
Respostas 3
Participantes 3