Foros del Web » Programación para mayores de 30 ;) » Java »

Ejecutar un literal...

Estas en el tema de Ejecutar un literal... en el foro de Java en Foros del Web. Hola gente, necesitaría saber, si en este lenguaje, se podría ejecutar un comando guardado previamente en una variable, es decir: String Funcion = rs.geString("Funcion"); //recogo ...
  #1 (permalink)  
Antiguo 24/01/2003, 07:00
Avatar de Ay0
Ay0
 
Fecha de Ingreso: enero-2002
Ubicación: Tenerife
Mensajes: 66
Antigüedad: 22 años, 3 meses
Puntos: 0
Ejecutar un literal...

Hola gente, necesitaría saber, si en este lenguaje, se podría ejecutar un comando guardado previamente en una variable, es decir:

String Funcion = rs.geString("Funcion"); //recogo el valor de un campo de una base de datos, que contiene el nombre de una función

Y lo que me interesaría ahora, sería ejecutar esa variable, para que llame a esa función, si se puede claro está, porque no se si en este lenguaje se pueden realizar este tipo de acciones.

Muchas gracias de antemano,

un saludo, Ay0.
  #2 (permalink)  
Antiguo 21/11/2004, 08:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 168
Antigüedad: 19 años, 6 meses
Puntos: 0
Explicate un poco mejor, no sé si lo he entendido pero lo que quieres es guardar en una variable, un campo de la base de datos que coincide con un nombre de función?
  #3 (permalink)  
Antiguo 21/11/2004, 09:08
Avatar de Ay0
Ay0
 
Fecha de Ingreso: enero-2002
Ubicación: Tenerife
Mensajes: 66
Antigüedad: 22 años, 3 meses
Puntos: 0
A ver, a groso modo, sería que teniendo en una variable de tipo String, el nombre de una función que tengo yo en mi página, por ejemplo:

String Funcion = "ComprobarFechas()";

Teniendo ese nombre de función, metido en una variable, puedo hacer ejecutar esa función a través de la misma?

Espero haberme aclarado mejor. Gracias.
  #4 (permalink)  
Antiguo 21/11/2004, 09:46
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
Tu quieres hacer algo como lo que hace PHP....
PEro en Java eso no es posible, recordemos que Java es un lenguage altamente tipado y con muchas mas restricciones, por eso ademas su robustes.

lo siento...

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #5 (permalink)  
Antiguo 21/11/2004, 09:51
Avatar de Ay0
Ay0
 
Fecha de Ingreso: enero-2002
Ubicación: Tenerife
Mensajes: 66
Antigüedad: 22 años, 3 meses
Puntos: 0
Ah ok, pues gracias por la aclaración.

Saludos.
  #6 (permalink)  
Antiguo 23/11/2004, 03:56
 
Fecha de Ingreso: noviembre-2004
Mensajes: 4
Antigüedad: 19 años, 5 meses
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
  #7 (permalink)  
Antiguo 28/11/2004, 11:28
 
Fecha de Ingreso: octubre-2004
Mensajes: 168
Antigüedad: 19 años, 6 meses
Puntos: 0
joete, nunca te acostarás sin fliparlo una vez mas jajaja, muy weno Restrictor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:07.