Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

xinoj

java.lang.nullpointerexcption erro

Mensagens Recomendadas

xinoj

Boa noite

Eu estou a desenvolver para a faculdade um projeto em JAVA que está na fase final, mas eu como programação tenho muitas dificuldades.

Nesta classe que vai aqui em baixo quando é chamada e quando escolho a pauta a consultar ela da um erro nullpointerexception na parte

if(obj.getPautas().getCodigo().toUpperCase().equals(_pauta.getCodigo().toUpperCase()))

não entendo o porque uma vez que no inicio da classe eu valido se a lista das pautas e a lista das notas for null

Alguem me pode ajudar?

public void consultar_notas(ArrayList<Pautas> listPauta, ArrayList<Notas> listNotas, Docente_Responsavel _docente_resp) throws java.io.IOException {
 listPauta = (ArrayList<Pautas>) ficheiro_leitura.LeFicheiro("pautas.dat");
 listNotas = (ArrayList<Notas>) ficheiro_leitura.LeFicheiro("notas.dat");

 String opcao="";
 int op = -1;

 Pautas _pauta;			
 Pautas _pauta_aux = new Pautas();

 if (listPauta==null || listPauta.size()==0)
 {
	 do
	 {
		 try
		 {
			 System.out.print ('\f');

			 System.out.println("\n\t\tATENÇÃO: NÃO EXISTEM PAUTAS PARA CONSULTA DE NOTAS!!!");

			 System.out.println("\nPRIMA 0 PARA VOLTAR AO MENU ANTERIOR");

			 System.out.print("\n >> ");		
			 op=Leitura.LeInt();
		 }
		 catch(InputMismatchException e)
		 {
			 String lixo = Leitura.LeString(); //limpa lixo
		 }
	 } while (op !=0);
	 if (op==0) menuDocente_Responsavel(_docente_resp);
 }
 else if (listNotas==null || listNotas.size()==0)
 {
	 do
	 {
		 try
		 {
			 System.out.print ('\f');

			 System.out.println("\n\t\tATENÇÃO: NÃO EXISTEM NOTAS LANÇADAS!!!");

			 System.out.println("\nPRIMA 0 PARA VOLTAR AO MENU ANTERIOR");

			 System.out.print("\n >> ");		
			 op=Leitura.LeInt();
		 }
		 catch(InputMismatchException e)
		 {
			 String lixo = Leitura.LeString(); //limpa lixo
		 }
	 } while (op !=0);
	 if (op==0) menuDocente_Responsavel(_docente_resp);
 }
 else
 {	

	 System.out.print ('\f');	

	 System.out.println(" \nESCOLHA UMA PAUTA: ");

	 for (int i=0; i<listPauta.size();i++)
	 {					
		 if (listPauta.get(i).getFechada()==false)
		 {
		 System.out.println("\n");
		 System.out.println("CÓDIGO: " + listPauta.get(i).getCodigo() + " " + listPauta.get(i).getDesignacao() );
		 System.out.println("REFERENTE AO: " + listPauta.get(i).getExame().getDesignacao());			
		 System.out.println("\n****************************************************");
		 }
	 }

	 int contador =0;

	 do
	 {
		 if (contador>0) System.out.println("OPÇÃO INVÁLIDA!");
		 System.out.println("\nINSIRA O CODIGO DA PAUTA A CONSULTAR A NOTA LANCADA: (0 PARA VOLTAR AO MENU ANTERIOR) ");
		 opcao=Leitura.LeString();

		 _pauta=_pauta_aux.valida_pauta(opcao);

		 contador++;
	 }
	 while (_pauta==null && !opcao.equals("0"));

	 if (opcao.equals("0"))
		 menuDocente_Responsavel(_docente_resp);


	 System.out.println(" \nNOTAS ATRIBUIDAS:\n ");

	 int conta_notas=0;

	 if (_pauta != null)
	 {
		 for (Notas obj : listNotas)
		 {					
			 if (obj.getPautas().getCodigo().toUpperCase().equals(_pauta.getCodigo().toUpperCase()))
			 {
				 System.out.println("\n***************************************************************************");
				 System.out.println(obj.getAluno().getNumero_aluno() + " - " + obj.getAluno().getNome());
				 System.out.println("NOTA ATRIBUIDA: " + obj.getResultado());			

				 conta_notas++;
			 }
		 }
	 }

	 if (conta_notas==0) System.out.println("ATENÇÃO: NÃO FORAM AINDA LANÇADAS NOTAS NA PAUTA SELECCIONADA!!!");

	 int opcao_valida=0;

	 do
	 {
		 System.out.println("\n\n0 VOLTA AO MENU ANTERIOR ");	
		 opcao_valida=Leitura.LeInt();	
	 }
	 while (opcao_valida !=0);
 }	
 menuDocente_Responsavel(_docente_resp);
}

Obrigado pela atenção

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

Desmonta essa linha em pedaços:

pautas = obj.getPautas();
codigo = pautas.getCodigo();
_codigo = _pauta.getCodigo();
codigoUpper = codigo.toUpperCase();
_codigoUpper = _codigo.toUpperCase();

if (codigoUpper.equals(_codigoUpper)

Dessa forma diz-te imediatamente o que é que é null.

Alternativamente, coloca um breakpoint nessa linha e executa em debug.

Editado por KTachyon

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo
if(obj                                                                                   // ou "obj" é null
     .getPautas()                                                                       // ou "obj.getPautas()" é null
                 .getCodigo()                                                           // ou "obj.getPautas().getCodigo()" é null
                             .toUpperCase().equals(
                                                   _pauta                               // ou "_pauta" é null
                                                         .getCodigo()                   // ou "_pauta.getCodigo()" é null
                                                                     .toUpperCase()))


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.