Ajuda com método de retorno

3 respostas
W

Tem um método:
buscaProduto – recebe um número e retorna o objeto Produto que tem código igual
a esse número, ou null, se não achar.

o problema ta no null, na hora de testar eu tenho esse codigo:

public static void main(String[]args){

Deposito d = new Deposito(3);
d.insereProdutos();

    d.exibeEstoque();

    d.precoMaisBaixo();

    d.produtoMaisCaro();

    d.precoMedio();

    d.buscaProduto(4).exibeProduto();

}

Reparem que no busca produto eu coloquei (4) para que fosse diferente do 1, 2 e 3, só que da erro NullPointerException.

segue os metodos envolvidos:
public Produto buscaProduto(int codigo){
for(int i =0; i < produto.length; i++){
if(codigo == produto[i].getCodigo()){
return produto[i];
}
}
return null;
}

public void exibeProduto(){

System.out.println("\nCódigo: " + codigo + " – R$ " + preco);

}

3 Respostas

M

Você executa um método em cadeia do produto que veio da função buscaProduto.

Porém a função busca produto, pode retornar um produto null.
Logo se o produto retorno for nulo, você receberá um NullPointerException porque tentou acessar um método de um objeot nulo.

W

entao não tem como ele me mostrar nada alem do erro?

Jederson_Andre

Faça uma verificação,

em uma aplicação eu capturei dados do banco, add em uma List objetos, e o metodo retornou essa lista.
No retorno eu fiz uma verificação, se retornou algum objeto entao há dados capturados, senão não houve dados capturados

qtdObjetosLidos = objetos.size();
if(qtdObjetosLidos != 0){
// EXISTE OBJETOS CAPTURADOS
//faz alguma coisa
} else {
//NÃO EXISTE OBJETOS CAPTURADOS
 // exibe uma mensagem
}
Criado 1 de novembro de 2017
Ultima resposta 1 de nov. de 2017
Respostas 3
Participantes 3