public static void main(String args[]) {
Empresa empresa = new Empresa();
Funcionarios[] funcionario = new Funcionarios[10];
empresa.cnpj = "123";
empresa.nome = "teste";
for (int i = 0; i < 3; i++) {
Funcionarios f1 = new Funcionarios();
f1.setNome(JOptionPane.showInputDialog("Informe seu nome: "));
String a;
a = JOptionPane.showInputDialog("Informe se o funcionário está na empresa ( true / false ): ");
boolean s = Boolean.parseBoolean(a);
f1.setStatus(s);
empresa.adiciona(f1);
}
Funcionarios f1 = new Funcionarios();
f1.setNome(JOptionPane.showInputDialog("Informe o nome da pessoa que deseja saber se está na empresa: "));
System.out.println(f1.getNome());
empresa.contem(f1);
lembrando que esse metodo abaixo fica em outra classe!
public boolean contem(Funcionarios f) {
for (int i = 0; i <= this.funcionario.length; i++) {
if (this.funcionario[i].getNome().equals(f.getNome())) {
if (this.funcionario[i].getStatus() == true) {
s = true;
System.out.println(“Funcionário encontra-se na empresa”);
} else {
s = false;
System.out.println(“Funcionário não encontra-se nessa empresa!”);
}
System.out.println(“O funcionário está na empresa!”);
break;
} else if (i == 2) {
System.out.println(“O funcionário NAO faz parte dessa empresa!”);
}
}
return s;
}
Exception in thread “main” java.lang.NullPointerException
at funcionarios.Empresa.contem(Empresa.java:31)
at funcionarios.PrincipalFuncionarios.main(PrincipalFuncionarios.java:52)
O for 0tem o seguintes usuarios: 1
O for 1tem o seguintes usuarios: 2
O funcionário NAO faz parte dessa empresa!
O for 2tem o seguintes usuarios: 3
tentei da maneira que vc falou… e ele ta exibindo 3 vezes…
Exception in thread “main” java.lang.NullPointerException
at funcionarios.Empresa.contem(Empresa.java:32)
at funcionarios.PrincipalFuncionarios.main(PrincipalFuncionarios.java:52)
4
Ja foram feiras 10arrays
O for 0tem o seguintes usuarios: 1
O for 1tem o seguintes usuarios: 2
O funcionário NAO faz parte dessa empresa!
O for 2tem o seguintes usuarios: 3
acho que ta explicado neh… mais qual a solucão… porque meu funcionario é [10]… só que eu criei so 3 pow… como eu anulo o resto?
Ele mostra pq vc definil a dimenssao ja com 10 ou seja vc nao pode inserir mais de 10
Funcionarios[] funcionario = new Funcionarios[10];
dua solucoes
a primeira seria vc criar um contador q vai contar quantas vezes ja fora adicionado uma pessoa, e depois coloca no for o valor do contador
a outra seria fazer com q caso o valor seje nulo entao ele nao faca a comparacao afinal o erro da pq ele ta comparando valores nulo entao faca assim
[code]
if (this.funcionario[i].getNome() == null) {
System.out.println(“Opa o Array[”+i+"] nao tem nada entao nao vai fazer comparacao");
}else{
if (this.funcionario[i].getNome().equals(f.getNome())) {
if (this.funcionario[i].getStatus() == true) {
s = true;
System.out.println(“Funcionário encontra-se na empresa”);
} else {
s = false;
System.out.println(“Funcionário não encontra-se nessa empresa!”);
}
System.out.println(“O funcionário está na empresa!”);
break;
} else if (i == 2) {
System.out.println(“O funcionário NAO faz parte dessa empresa!”);
}
}
Você pode usar ArrayList, isso vai deixar seu Array mais dinâmico.
Ex:
ArrayList <Funcionarios> lista = new ArrayList<Funcionarios>();
//Para adicionar objetos
Funcionario f1 = new Funcionario();
lista.add(f1);
//Para recuperar os objetos
for(int i=0;i < lista.size(); i++){
Funcionario f = lista.get(i);
}