1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Erro java.lang.NullPointerException

Estou desenvolvendo um programa simples. Consigo receber os dados tranquilamente porém quando tento comparar o nome pesquisado com os nomes do sistemas para realizar os devidos cálculos aparece o seguinte erro: Exception in thread "main" java.lang.NullPointerException at Data.Exercicio.HoraEntrada.gerarTotal(HoraEntrada.java:104) at Data.Exercicio.Principal.main(Principal.java:30) Java Result: 1

package Data.Exercicio;

import javax.swing.JOptionPane;

/**
 *
 * @author T. Moura
 */
public class Principal {

    public static void main(String args[]) {
        String op, escolha;
        String menu = " 1 ------- Cadastrar\n"
                + " 2 ------- Gerar Total\n"
                + " Escolha uma Opção (1 ou 2)";
        do {
            op = JOptionPane.showInputDialog(menu);
            switch (op) {
                case "1":
                    HoraEntrada hora = new HoraEntrada();
                    hora.cadastrar();
                    escolha = JOptionPane.showInputDialog("Digite sim para voltar ao menu");
                    break;
                case "2":
                    HoraEntrada total = new HoraEntrada();
                    total.gerarTotal();
                    escolha = JOptionPane.showInputDialog("Digite sim para voltar ao menu");
                    break;
                default:
                    JOptionPane.showMessageDialog(null, "Opção inválida");
                    escolha = "sim";
            }
        } while (escolha.equals("sim"));
    }
}
package Data.Exercicio;

import java.util.Date;
import javax.swing.JOptionPane;

/**
 *
 * @author T. Moura
 * @author T. Moura
 */ 
public class HoraEntrada{
    HoraEntrada dados[] = new HoraEntrada[1];
    HoraEntrada d;
    Date date =  new Date();
    private String nome;
    private int horaEntrada;
    private int horaSaida;
    private int minEntrada;
    private int minSaida;

    public int getMinEntrada() {
        return minEntrada;
    }

    public void setMinEntrada(int minEntrada) {
        this.minEntrada = minEntrada;
    }

    public int getMinSaida() {
        return minSaida;
    }

    public void setMinSaida(int minSaida) {
        this.minSaida = minSaida;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public long getHoraEntrada() {
        return horaEntrada;
    }

    public void setHoraEntrada(int horaEntrada) {
        this.horaEntrada = horaEntrada;
    }

    public long getHoraSaida() {
        return horaSaida;
    }

    public void setHoraSaida(int horaSaida) {
        this.horaSaida = horaSaida;
    }

      void cadastrar() {
        String op;
        d = new HoraEntrada();
        for (int i = 0; i < 1; i++) {
           d.setNome(JOptionPane.showInputDialog("Digite o nome: "));
           op = JOptionPane.showInputDialog(null,"O horário de entrada é: "
                   +date.getHours()+":"+date.getMinutes()+"\nDigite sim para confirmar o registro");
           if("sim".equals(op)){
               d.setHoraEntrada(date.getHours());
               d.setMinEntrada(date.getMinutes());
           }
           else
               continue;
           JOptionPane.showMessageDialog(null, "Altere o Horário");
           atualizarData();
           op = JOptionPane.showInputDialog(null,"O horário de saída é: "
                   +date.getHours()+":"+date.getMinutes()+"\nDigite sim para confirmar o registro");
           if("sim".equals(op)){
               d.setHoraSaida(date.getHours());
               d.setMinSaida(date.getMinutes());
           }
           else
               continue;
           dados[i]=d;
        }


    }

    void atualizarData(){
        date = new Date();
    }

    void gerarTotal() {
       String pesquisar;
       do{
       long total=0;
       String npesquisado = JOptionPane.showInputDialog("Digite o nome: ");
       for(int i = 0; i < 1; i++){
           if(npesquisado.equals(dados[i].getNome())){
               System.out.println("Até aqui tudo bem [...]");
               //System.out.println(total+" "+dados[0].getHoraEntrada()+" "+dados[0].getHoraSaida());
               //total = ((dados[0].getHoraEntrada()-dados[0].getHoraSaida())*2)
               //        +((dados[0].getMinEntrada()-dados[0].getMinSaida())*(2/60));
           }
       }
       if(total != 0)
           JOptionPane.showMessageDialog(null, "O valor a ser pago é: "+total);
       else
           JOptionPane.showMessageDialog(null, "Não encontrado");
           pesquisar = JOptionPane.showInputDialog(null, "Digite sim para pesquisar novamente");
       }while("sim".equals(pesquisar));
    }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java null ponteiros exception ou faça a sua própria pergunta.