Usando enumerados de Java como si fuera un array asociativo en PHP

Imagen logo de JavaEsto me ha parecido muy pero que muy interesante.

Trabajando en uno de los proyectos en los que estoy inmerso he tenido que buscar algún mecanismo parecido a los arrays de PHP en los que se puede acceder por un índice textual, como en los resultados de consultas SQL que permite acceder en el array por el nombre del campo en la BBDD.

Codigo ejemplo PHP acceso por indice textual, resultadso mysql

Buscando y buscando no he encontrado algo similar a las listas o arrays para valores enumerados, pero si un mecanismo bastante interesante, y es crear un registro o un nuevo objeto con un atributo de tipo de enumerado en el que se le asocia un determinado valor al crear y/o modificar a dicho valor enumerado.

Esto permite tener una pseudo-tupla con la opción de asociar un valor determinado (ya sea variable, o conocido por defecto).

La metodología como he dicho es crear un método de instanciación siempre que se modifique (ya sea por construcción new Object() o por hacer una actualización public void setObject(Enum elem)) asociar además un determinado valor al susodicho elemento gracias a un método auxiliar para este fin (preferiblemente privado private void updateValue(Enum elem)).

A modo de ejemplo os dejo un documento que lo explicará mejor lo que quiero plasmar con el uso de Enum en java, y la solución pensada/planteada… aunque no sea nada del otro mundo:

Codigo de ejemplo para utilizar un enumerdo a modo de registro con acceso por valor indice
Descargar EnumExample.java

Este es un uso peculiar, nunca había utilizado para asociar un valor a un enumerado, siempre lo había puesto en código de programa…

Esta solución ha sido propuesta para un problema con valores predefinidos y previamente conocidos, pero se podría extrapolar, agregando las modificaciones pertinentes a un elemento donde los valores pudieran ser variables. Pero en lugar de tener una función de actualización se precisaría el valor de la variable a instanciar en concreto.

Esto es una tupla normal y corriente pero favoreciendo el uso para valores conocidos y problemas con llamadas por valores enumerados y no valores específicos (discriminación por valor, comparacion de cadenas de caracteres o string, etc).

Dado que el trabajo exige un número finito y determinado de elementos, no veo oportuno el utilizar tablas o mapas con sus respectivas tuplas de acceso a las mismas, aunque era otra opción a utilizar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *