Skip to main content

Usando APi Reflection para invocar métodos set

Hay muchas formas de usar Reflection en Java, en esta ocasión un ejemplo sencillo implementado en un proyecto Web, que utiliza Java Server Faces.
Tenemos un entity  llamado Reservadoagente que definimos con JMoordb





Deseamos asignar el valor de 3 a los atributos turnodia2 hasta turnodia3, para mostrar en un datatable como se muestra en el ejemplo:




            Class[] paramInt = new Class[1];
            paramInt[0] = Integer.TYPE;

            for (Agente a : agenteList) {

                   Reservadoagente reservadoagente = new Reservadoagente();
                   reservadoagente.setAgente(a);
                   Class cls = reservadoagente.getClass();
                   Object obj = reservadoagente;

                   for (int dia = 1; dia <= numeroDiasMes; dia++) {
                             Field field = cls.getDeclaredField("turnodia" + dia);
                             Method setter = cls.getMethod("setTurnodia" + dia, field.getType());
                             setter.setAccessible(true);
                             setter.invoke(obj, 3);
                   }
                  reservadoagenteList.add(reservadoagente);
        }





Comments

Anonymous said…
There is definately a great deal to learn about
this subject. I like all the points you have made.

Popular posts from this blog

Primefaces v13

 La versión nueva de primefaces v13.0 elimina el componente <p:repeat>  Consulte los cambios en  https://github.com/primefaces/primefaces/releases/tag/13.0.0 por lo tanto si necesita una solución similar considere utilizar  <p:carousel>  o  <ui:repeat> En la versión 13 genera una excepción

Jmoordb-Core @UpdateMany y @DeleteMany

 Jmoordb-Core @UpdateMany y @DeleteMany Estoy trabajando en una versión nueva de jmoordb-core en la cual se estará implementando nuevas funcionalidades como lo son @DeleteMany y    @UpdateMany con la finalidad de hacer operaciones sobre múltiples documentos de la colección.