ola gurizada olhem esse codigo
public class relatorio {
/** Creates a new instance of relatorio */
public void relatori(paciente P){
for (int i=1; i < P.arrayp.length; i++) {
if (P.arrayp[i]!=null){
if(P.arrayp[i].tipo.equals("pessoa_juridica")){
System.out.println(P.nome);
System.out.println(P.idade);
System.out.println(P.identidade);
System.out.println(P.endereco);
System.out.println(P.pai);
System.out.println(P.mae);
System.out.println(P.tipo);
System.out.println("");
}
}
else{
System.out.println(P.nome);
System.out.println(P.idade);
System.out.println(P.identidade);
System.out.println(P.endereco);
System.out.println(P.pai);
System.out.println(P.mae);
System.out.println(P.tipo);
System.out.println("");
}
}
}
}
e quando eu mando usar o metodo dessa classe da a seguinte msg
Exception in thread “main” java.lang.NullPointerException
at relatorio.relatori(relatorio.java:23)
at teste.main(teste.java:77)
e aponte para
esse trecho do codigo
if(P.arrayp[i].tipo.equals("pessoa_juridica"))
alguem sabe me diser o que tem de errado nesse code???
[/code]
Se esse eh realmente o codigo, jah penso em declara a array??
Exactamente, falta a declaração do array e eventualmente a declaração da NullPointerException no método relatori() utilizando a estrutura try-catch.
Exemplo:
void relatori() {
try {
//o código que envolve o array
} catch (NullPointerExeption npe) {}
}
amigos e que a array tah declarada na classe paciente.
mas a principio tah tud certo ne???o mew problema e que eu ñ estou conseguindo declarar a varitavel tipo como Pessoa_fisica ou juridica esse e o problema.
observem
public class teste {
/** Creates a new instance of teste */
public static void main(String[]args) {
paciente p= new paciente();
pessoa_fisica pf = new pessoa_fisica();
pessoas_juridica pj = new pessoas_juridica();
relatorio r = new relatorio();
internacao in = new internacao();
int opcao = 0;
while(opcao!=7)
{
System.out.println("(1) cadastrar paciente");
System.out.println("(2) Remover paciente");
System.out.println("(3) Lista Pacientes");
System.out.println("(4) Interna Paciente");
System.out.println("(5) Lista Pacientes internados");
System.out.println("(6) Efetua alta");
System.out.println("(7) Sair do sistema");
opcao = console.readInt("");
if(opcao==1){
int tip;
System.out.println("informe o nome do paciente");
p.nome=console.readLine("");
System.out.println("informe a idade do paciente");
p.idade=console.readInt("");
System.out.println("informe o rg do paciente");
p.identidade=console.readInt("");
System.out.println("informe o endereco do paciente");
p.endereco=console.readLine("");
System.out.println("Indorme o nome do pae do paciente");
p.pai=console.readLine("");
System.out.println("Informe o nome da mae do paciente");
p.mae=console.readLine("");
System.out.println(" se passoa e juridica(1)");
System.out.println(" se a pessoa e fisica(2)");
tip=console.readInt("");
if(tip == 1){
pj.tipo = "pessoa_juridica";
}
if(tip == 2){
pf.tipo = "pessoa_fisica";
//o problema!!!!
}
......
Hum…mas não era a NullPointerException que te impedia de compilar?
Um conselho:
if (tip==1)
pj.tipo = "pessoa_juridica";
else if (tip==2)
pj.tipo = "pessoa_fisica";
Qual é o erro que te dá agora então?
Assim deve funcionar:
if (P.arrayp[i] !=null && P.arrayp[i].tipo != null)
Mas pra esse tipo ser null, acho que tem algo errado em sua lógica.
Voce tem que padronizar esse codigo melhor.
Vc instanciou o array dentro da classe do paciente e também instanciou cada posição do array?
tipo
String[] array = new String[100];
for (int i=0; i < array.lenght; i++){
array[i] = new String(); // ou apenas ""
}
T+
ps.: Observe o Java Code Convention para organizar melhor seu código