Dúvida com relação à saída de um método

Pessoal

se eu tiver um método, por exemplo:

[code]
public Integer consultaIdade(){

Integer idadeJoao = pessoas.get("João");    
Integer idadeMarcos = pessoas.get("Marcos");
    return ?????;
}[/code]

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?

1 Abraço,

Airton

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);

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?

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.

É perfeitamente possível, mas é uma baita duma gambiarra.

Não acho que isso deva ser ensinado como alternativa pra nenhum aluno.

É perfeitamente possível, mas é uma baita duma gambiarra.

Não acho que isso deva ser ensinado como alternativa pra nenhum aluno.[/quote]+1

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:

[code]package org.escola.exemplo01;

import java.util.HashMap;
import java.util.Map;

public class ExemploRetornosMetodo {

private Map<String, Integer> pessoas = new HashMap<String, Integer>();

public ExemploRetornosMetodo() {
	
	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
 */
public Integer getIdadeJoao() {
	
	return pessoas.get("Joao");
	
}

public Integer getIdadeMarcos() {
	
	return pessoas.get("Marcos");
	
}

/**
 * Classe usada para retorno de um "registro" com as idades
 */
public static class IdadesPessoas {
	
	private Integer idadeJoao;
	private Integer idadeMarcos;
	
	public IdadesPessoas(Integer idadeJoao, Integer idadeMarcos) {
		
		this.idadeJoao = idadeJoao;
		this.idadeMarcos = idadeMarcos;
		
	}
	
	public Integer getIdadeJoao() {
		return idadeJoao;
	}
	
	public Integer getIdadeMarcos() {
		return idadeMarcos;
	}
	
}

/**
 * Exemplo de método que retorna um "registro", ou seja, um objeto com vários valores 
 */
public IdadesPessoas consultaIdades() {
	
	return new IdadesPessoas(getIdadeJoao(), getIdadeMarcos());
	
}

/**
 * Exemplo de toString() significativo
 */
public String toString() {
	
	return "Joao e Marcos tem, respectivamente, " + getIdadeJoao() + " e " + getIdadeMarcos() + " anos.";
	
}

}
[/code]

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,

Airton