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

JUnit con DataClassG

JUnit con DataClassG 0. ESQUEMA Services: Por cada beans crearemos una clase Services que se encargará de interactuar con el controller para realizar las operaciones de la base de datos. Se crearan los métodos insert, update,delete y los demas metodos para realizar las diversas operaciones. Test: Se crearán las clases para test de las clases Services. Form: Los formularios para la interactuar con el usuario. ProvinciasServices.java colocamos los métodos, insert, update,delete public class ProvinciasServices {    ProvinciasController provinciasController = new ProvinciasController();    public ProvinciasServices() {    }    public Boolean insert (Provincias provincias){        try{            if(provinciasController.insert(provincias)){              return tru...

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