Veja que o método faz duas coisas, que são buscar num HashMap as informações relativas a João e Marcos. Mas sabendo-se que um método não pode ter dois retornos, como faço para aproveitá-lo para me fornecer as duas saídas?
Como faço para "juntar" as duas informações para ter uma única saída com as duas idades numa String? Posso utilizar um toString() para isso?
Você precisa repensar esse método. Por que um método que se chama consultarIdade retornaria 2 valores? isso não faz sentido.
A ideia é aproveitar o método para não ter que repetir código. Exemplo:int idadeJoao = consultarIdade(joao);
int idadeMarcos = consultarIdade(marcos);
utluiz
Uma suposição… se ideia for listar as idades de um conjunto de pessoas, para fazer uma média, por exemplo, o método pode retornar um array de inteiros.
Mas realmente não está claro a intenção. As pessoas que o método recupera a idade são fixas?
airmigjr
Na verdade é apenas uma suposição. Com certeza, enxergo que seria melhor deixar o método sem valores fixos para que ele retorne valores de idades de determinadas pessoas quando e as quais eu quiser, mas preciso de uma forma didática de passar isso para os meus alunos, e gostaria de passar os 3 conceitos, o de retorno de somente um “dado” do método, o de converter aqueles 2 dados inteiros em String, e a utilização do toString(). Gostaria de saber utilizar o toString() para transformar os 2 valores em String e concatená-los para serem o único retorno do método.
Rodrigo_Sasaki
É perfeitamente possível, mas é uma baita duma gambiarra.
Não acho que isso deva ser ensinado como alternativa pra nenhum aluno.
Hebert_Coelho
É perfeitamente possível, mas é uma baita duma gambiarra.
Não acho que isso deva ser ensinado como alternativa pra nenhum aluno.+1
utluiz
Pessoalmente, acredito que não é melhor misturar conceitos ao ensinar pessoas leigas. Cada um de uma vez é mais didático, na minha opinião.
Para retorno de valores múltiplos, tipo um registro, use um objeto com um atributo para cada valor.
Por exemplo:
packageorg.escola.exemplo01;importjava.util.HashMap;importjava.util.Map;publicclassExemploRetornosMetodo{privateMap<String,Integer>pessoas=newHashMap<String,Integer>();publicExemploRetornosMetodo(){pessoas.put("João",28);pessoas.put("Marcos",30);}/** * Exemplo de retorno de uma idade, com um nome de método que descreve claramente seu intuito */publicIntegergetIdadeJoao(){returnpessoas.get("Joao");}publicIntegergetIdadeMarcos(){returnpessoas.get("Marcos");}/** * Classe usada para retorno de um "registro" com as idades */publicstaticclassIdadesPessoas{privateIntegeridadeJoao;privateIntegeridadeMarcos;publicIdadesPessoas(IntegeridadeJoao,IntegeridadeMarcos){this.idadeJoao=idadeJoao;this.idadeMarcos=idadeMarcos;}publicIntegergetIdadeJoao(){returnidadeJoao;}publicIntegergetIdadeMarcos(){returnidadeMarcos;}}/** * Exemplo de método que retorna um "registro", ou seja, um objeto com vários valores */publicIdadesPessoasconsultaIdades(){returnnewIdadesPessoas(getIdadeJoao(),getIdadeMarcos());}/** * Exemplo de toString() significativo */publicStringtoString(){return"Joao e Marcos tem, respectivamente, "+getIdadeJoao()+" e "+getIdadeMarcos()+" anos.";}}
airmigjr
utluiz, muito obrigado pela resposta.
Vou com certeza levar a sua dica em consideração, e agradeço novamente pelo envio do código com o exemplo.
1 Abraço,