Jump to content
xinoj

java.lang.nullpointerexcption erro

Recommended Posts

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

Edited by Rui Carlos

Share this post


Link to post
Share on other 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.

Edited by 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.