Boa tarde!
Será que alguém pode me dizer pq que da erro e como corrigir esse algoritmo?
o erro é esse:
Exception in thread “main” java.lang.NullPointerException
at edu.exercicios.tres.Produto.main(Produto.java:63)
segue o algoritmo:
package edu.exercicios.tres;
import javax.swing.JOptionPane;
public class Produto {
private Integer codigo;
private String nome;
private Double preco;
private Data dataValidade;
/*
public Produto(Integer codigo, String nome, Double preco, Data dataValidade) {
this.codigo = codigo;
this.nome = nome;
this.preco = preco;
this.dataValidade = dataValidade;
}
*/
public Produto[] preenche(Produto[] p){
for (int i = 0; i < p.length; i++) {
p[i].codigo = Integer.parseInt(JOptionPane.showInputDialog("Digite o codigo do produto: "));
p[i].nome = JOptionPane.showInputDialog("Digite o nome do produto: ");
p[i].preco = Double.parseDouble(JOptionPane.showInputDialog("Digite o preço do produto: "));
Integer dia = Integer.parseInt(JOptionPane.showInputDialog("Digite o dia da data de validade: "));
Integer mes = Integer.parseInt(JOptionPane.showInputDialog("Digite o mes da data de validade: "));
Integer ano = Integer.parseInt(JOptionPane.showInputDialog("Digite o ano da data de validade: "));
p[i].dataValidade = new Data(dia, mes, ano);
//return p;
}
return p;
}
public Produto[] imprime(Produto[] prod){
for(int i = 0; i < prod.length; i++){
System.out.println("=== PRODUTO ===");
System.out.println("codigo: " + prod[i].codigo);
System.out.println("Nome: " + prod[i].nome);
System.out.println("Preço: R$" + prod[i].preco );
System.out.println("Data de validade: " + prod[i].dataValidade.getDia() + "/" + prod[i].dataValidade.getMes() + "/" + prod[i].dataValidade.getAno());
}
return prod;
}
//public Produto alteraPreco(Produto prod, Double novoPreco){
//prod.dataValidade = novoPreco;
//return prod;
//}
public static void main(String[] args){
Produto[] p = new Produto[2];
for (int i = 0; i < p.length; i++) {
p[i].preenche(p);
p[i].imprime(p);
}
}
}