5 maneiras de retornar vários valores de um método em Java

Google Translate Icon

Este post discutirá como retornar vários valores de um método em Java.

De acordo com a Java Language Specification, os métodos em Java podem retornar apenas um valor por vez. Portanto, retornar vários valores de um método teoricamente não é possível em Java. Mas a beleza do Java está no fato de que podemos fazer as coisas desejadas com algumas soluções inteligentes. Este post fornece uma visão geral de algumas das alternativas disponíveis para fazer isso.

1. Usando um POJO instância de classe

Este é o método mais comumente usado para retornar vários valores de um método em Java. A ideia é retornar uma instância de uma classe contendo todos os campos que queremos retornar.

Essa classe pode ser um POJO com variáveis de membro público e um construtor público para iniciar seus campos com valores obrigatórios ou um JavaBean com getters e setters correspondentes para suas variáveis de membro privado e construtor público no-arg.

Download  Executar código

Resultado:

Name is Ryan
Age is 25
Gender is M

 
Os benefícios de usar esse método sobre outros métodos discutidos abaixo são que ele fornece segurança de tipo e melhora consideravelmente a legibilidade do código.

A seguir está uma versão mais simples do programa acima que usa uma array de objetos para armazenar todos os campos obrigatórios, mas não oferece nenhuma segurança de tipo nem mesmo passa informações de campo para o chamador.

Download  Executar código

Resultado:

The returned values are [Ryan, 25, M, 100000]
The collection size is 4
The name field has value Ryan

 
Também podemos implementar um Pair genérico ou Tuple genérico, que também oferece segurança de tipo se precisarmos apenas retornar dois ou três campos do método.

2. Usando javafx.util.Pair class

A partir do Java 8, podemos usar o Pair classe incluída no javafx.util pacote que representa os pares nome-valor.

Código de download

Resultado:

{name : Ryan}
{age : 25}
{gender : M}

3. Retornar uma array de tipo específico ou uma array de objetos

Essa é a abordagem mais simples até agora, mas não oferece segurança de tipo (para uma array de objetos) ou passa informações de campo para o chamador. Para argumentos do mesmo tipo, podemos fazer algo como:

Download  Executar código

Resultado:

[30, 50, 100]

 
Para argumentos de vários tipos, podemos retornar uma array de objetos, conforme mostrado abaixo:

Download  Executar código

Resultado:

[Ryan, 25, M, 100000]

4. Devolva uma coleção

Em vez de retornar um array, também podemos retornar um Collection. Por exemplo, o programa a seguir usa um List em vez de uma array.

Download  Executar código

Resultado:

[Ryan, 25, M, 100000]

 
Usando um List não passa informações de campo para o chamador. Em vez disso, podemos criar um mapa para passar o nome do campo e seu valor como pares chave-valor, conforme mostrado abaixo:

Download  Executar código

Resultado:

income is 100000$
gender is Male
name is Ryan
age is 25

5. Usando um delimitador

Aqui, a ideia é retornar uma string composta por todos os valores separados por um delimitador. Em seguida, precisamos dividir a string usando o mesmo delimitador antes de usar os valores dentro do método chamador.

Essa abordagem não é tão elegante, mas ainda é amplamente usada em muitos projetos legados para transferir dados entre o modelo e a visualização.

Download  Executar código

Resultado:

George
Martin

Isso é tudo sobre como retornar vários valores de um método em Java.

 
Veja também:

Retornar vários valores de uma função em C

Retornar vários valores de funções em C++

Avalie esta postagem

Classificação média 4.59/5. Contagem de votos: 32

Sem votos até agora! Seja o primeiro a avaliar este post.

Lamentamos que este post não tenha sido útil para você!

Diga-nos como podemos melhorar este post?




Obrigado por ler.

Por favor, use nosso compilador online para postar código em comentários usando C, C++, Java, Python, JavaScript, C#, PHP e muitas outras linguagens de programação populares.

Como nós? Indique-nos aos seus amigos e ajude-nos a crescer. Codificação feliz :)



Se inscrever
Notificar de
guest
6 Comentários
Mais votados
O mais novo Mais antigo
Comentários em linha
Ver todos os comentários
NÃO siga este link ou você será banido do site!