java

Java: devolver varios valores en función

En este post de programación en Java y trabajo con funciones o métodos te mostraré cómo regresar 2 valores en una función.

Además de enseñarte un ejemplo para regresar dos valores te enseñaré cómo devolver varios valores, es decir, 3, 4, 5, etcétera.

Vamos a ver varios enfoques y ejemplos. Por cierto, ya te mostré cómo hacerlo en C# y PHP.

Método simple: con arreglos

Comencemos viendo cómo regresar varios datos en Java usando arreglos. Un arreglo puede ser de cualquier longitud fija, por lo tanto podemos definir un método así:

See the gist on github.

En este caso estoy devolviendo dos cadenas, pero puede ser cualquier tipo de dato del arreglo. Y de este modo estaríamos devolviendo dos valores, aunque pueden ser más.

Para usarlo hacemos lo siguiente:

See the gist on github.

Si bien esta práctica no es recomendada porque tenemos que ir a ver el código de la función para saber los índices de los datos, es la más simple.

Devolver dos valores usando SimpleEntry

Existe una clase llamada SimpleEntry que guarda una clave y un valor genéricos. Así que ambos pueden ser de cualquier tipo. Aquí un ejemplo que devuelve una cadena y un entero:

See the gist on github.

Fíjate en que estoy indicando el tipo de dato de la clave y valor al definir el método. Y ahora para llamarlo debo definir una instancia de esta clase indicando los mismos tipos de datos en ese orden:

See the gist on github.

La ventaja de este método es que podemos revisar los tipos de datos en tiempo de compilación, previniendo varios errores.

Devolver múltiples valores con clase

Ahora veamos el método recomendado para devolver varios valores en una función de Java. Lo mejor es crear una clase auxiliar que represente lo que vamos a representar.

No importa lo tedioso que parezca, al final es mejor. Por ejemplo, tenemos un método que devuelve el nombre y edad. Podemos crear una clase llamada NombreConEdad:

See the gist on github.

Y luego indicar que vamos a devolver una instancia de esa clase en nuestro método:

See the gist on github.

Ahora podemos usar los getters y setters; pero lo más importante es que sabemos lo que la función nos devuelve. Ya no nos devuelve algo genérico, sabemos lo que regresa: un nombre con edad.

De este modo sabemos (como humanos) lo que la función regresa.

Devolver múltiples datos – Ejemplo final

Para terminar el post te mostraré cómo devolver 3 o infinitos valores en una función de Java. Lo haremos de nuevo con clases, mejorando el método anterior.

Arriba te mostré que puedes usar una clase, pero recuerda que debes encontrar el parecido a una cosa real de la vida real. Por lo tanto si quisiéramos devolver 3 valores: el nombre, apellido y edad probablemente sería mejor crear la clase Persona en lugar de la clase NombreConApellidoYEdad.

See the gist on github.

Lo que quiero darte a entender aquí es que debes buscar la clase significativa que represente lo que vas a devolver, abstrayendo con cosas de la vida real. De este modo vas a tener un código más limpio y entendible.

See the gist on github.

Finalmente te dejo el código completo de los ejemplos mostrados aquí:

See the gist on github.

Puedes ejecutarlo en línea. También te dejo con un enlace para aprender más sobre Java en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Solución: Unable to extract uploader id con youtube-dl

En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…

1 día hace

Enviar foto a Telegram usando cURL y Bot

Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…

1 día hace

cURL y Telegram: enviar mensaje a Bot

En un post previo te enseñé a enviar un mensaje en nombre de un Bot…

1 día hace

Impresora térmica con Telegram usando Bot

En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…

1 día hace

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

5 días hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

6 días hace

Esta web usa cookies.