Object to String[RESOLVIDO]

5 respostas
ronibass
Ola pessoal, gostaria de saber se existe a possibilidade de converter uma referência de um objeto para uma String, quero passar uma referência ao objeto "Funcionario" com "JOptionPane.showInputDialog" Quero saber se existe este objeto na array" funcionario" atravez do método "contemFuncnionario" Meu código é o seguinte! Obrigado
//Classe Empresa
import javax.swing.JOptionPane;
public class Empresa {

	private String nome;
	private String cnpj;
    private Funcionario[] funcionario = new Funcionario[2];
    private int posicaoFunc;
    public Empresa() {

    }

    public void adiciona (Funcionario func){
    	funcionario[posicaoFunc] = func;
    	posicaoFunc ++;
    }

    public void mostraFuncionario(){
    for(int i = 0; i < this.funcionario.length; i ++){
    	this.funcionario[i].mostraDadosFuncionario();
    }}

    public void contemFuncionario(Funcionario func){
    	for(int aux = 0; aux < this.funcionario.length; aux++ ){
    		if(this.funcionario[aux] == func);
    		   JOptionPane.showMessageDialog(null,"Este funcionário já está cadastrado !");
    	}
    }
}

//Classe Principal
import javax.swing.JOptionPane;
public class TestaEmpresa {

	public static void main(String[] args){
		Empresa empresa = new Empresa();

    for(int posicao = 0; posicao < 2; posicao ++){
     	Funcionario func = new Funcionario();
     	empresa.adiciona(func);
     }

     empresa.mostraFuncionario();
     empresa.contemFuncionario(JOptionPane.showInputDialog(null, "Qual o nome do funcionario que voce deseja consultar?"));


	}
}

5 Respostas

renanjp

Cero…
provavelmente você esta querendo fazer ispo para usar o metodo equals(Object obj) da String…

isso não é uma boa pratica…

humm, vamo la…

Se entendi bem, vc quer receber o nome do funcionario e ver se há um funcionario com este nome no array…

Bom…
o que vc pode fazer é o seguinte:

Receber uma String no seu metodo…
e a cada iteração do for pegar o nome do funcionario e comparar com esta String…

agora se você quer receber uma instancia de funcionario mesmo para comparação…
Recomendo vc pesquisar sobre os metodos equals e hash code…
da classe Object e como esses podem ser reescritos…

Qualquer duvida estou a disposição :slight_smile:

B

O correto é você localizar o funcionário por nome:

public Funcionario acharFuncionarioPorNome (String nome) {
    for (int i = 0; i < funcionario.length; ++i) {
        if (funcionario[i].nome.equals (nome)) {
            // Achou
            return funcionario;
        }
    }
    // Não achou
    return null;
}

Note que um Funcionario não é o seu nome :slight_smile:

Isto feito, você chama esse “acharFuncionarioPorNome” e então verifica se o resultado é null (se for, ele não achou o funcionario) ou se não é null (nesse caso, é uma referência para o funcionario achado).

ronibass

Muito Obrigado amigos por se prontificarem em me ajudar, esse fórum tem pessoas incríveis que sempre se dispõem a ajudar os que tem menos conhecimento

asousaj

Não seria assim?

return funcionario[i];

Ao meu entender é pra retornar o funcionario e não todos os funcionários.

Se escrevi besteira favor ignorar :smiley:

E

asousaj:
Não seria assim?

return funcionario[i];

Ao meu entender é pra retornar o funcionario e não todos os funcionários.

Se escrevi besteira favor ignorar :D

Você está certo. É que eu acabei me deixando levar pelo nome do array (meu costume é pôr os nomes de variáveis que representam coleções no plural, e então não enxerguei que “funcionario” era uma coleção de funcionários, não um único funcionário :oops:

Criado 12 de julho de 2012
Ultima resposta 12 de jul. de 2012
Respostas 5
Participantes 5