23/11/2004, 03:56
|
| | Fecha de Ingreso: noviembre-2004
Mensajes: 4
Antigüedad: 20 años, 1 mes Puntos: 0 | |
Si se puede hacer Si se puede hacer.
En java existe algo llamado reflexion o algo parecido con lo que puedes llamar a una funcion utilizando un literal.
Yo hice algo parecido. Aqui te pongo el codigo:
public void load(ResultSet carga,Class clase) throws EBCargaIncorrectaException {
try {
///Con esto puedes incluso crear una clase INCLUSO SOLO CON EL LITERAL DE LA CLASE Y CON EL LITERAL DEL CONSTRUCTOR
Class[] argumentosConstructor=new Class[]{Integer.class};
Class[] argumentos=new Class[]{ResultSet.class};
Constructor metodoConstructor=clase.getConstructor(argumentosC onstructor);
//// AQUI es donde defines al metodo desde un literal. Por ejemplo, aqui estoy definiendo a un metodo lllamado load desde un literal.
Method metodoLoad=clase.getMethod("load",argumentos);
Object[] parametrosConstructor= new Object[1];
parametrosConstructor[0]=new Integer(cod_solicitante);
Object[] parametros= new Object[1];
parametros[0]=carga;
while(carga.next())
{
Object objeto=metodoConstructor.newInstance(parametrosCon structor);
// Y aqui finalmente es donde se realiza propiamente la llamada
metodoLoad.invoke(objeto,parametros);
this.add(objeto);
}
}
catch(Exception e) {
// Si el metodo al que intentas llamar no existe
}
Espero que te sirva |