Foro de elhacker.net

Programación => Java => Mensaje iniciado por: xGisKaRDx en 31 Julio 2014, 18:54 pm



Título: Pasar nombre de funcion como parametro de otra funcion en java
Publicado por: xGisKaRDx en 31 Julio 2014, 18:54 pm
Hola amigos, estoy aprendiendo java y me gustaria saber si puedo pasar una funcion como parametro de otra funcion de una manera sencilla, que no complique el codigo.

es decir hay algo parecido o equivalente en java a algo tan bonito como lo siguiente?:

Código
  1.  
  2. //La funcion a pasar
  3. public function Hola():void{
  4.   trace("Hola mundo");
  5. }
  6.  
  7. //Esta funcion ejecuta la funcion pasada en su parametro
  8. public function Saluda(parametro:Function):void{
  9.    parametro();
  10. }
  11.  
  12. //Ejecutamos la funcion "Saluda" pasandole como parametro el nombre de la funcion "Hola" sin parentesis
  13. Saluda(Hola);
  14.  
  15.  

Resultado en consola "Hola mundo"


Título: Re: Pasar nombre de funcion como parametro de otra funcion en java
Publicado por: ivancea96 en 1 Agosto 2014, 01:09 am
http://stackoverflow.com/questions/4685563/how-to-pass-a-function-as-a-parameter-in-java (http://stackoverflow.com/questions/4685563/how-to-pass-a-function-as-a-parameter-in-java)
Si eso te ayuda..


Título: Re: Pasar nombre de funcion como parametro de otra funcion en java
Publicado por: xGisKaRDx en 1 Agosto 2014, 01:41 am
Gracias por la respuesta, la verdad es que ese resultado ya lo habia encontrado buscando por internet, pero no acabo de entenderlo, al parecer de los varios ejemplos que aparecen el mas sencillo a simple vista es el de callable pero no acabo de comprender su funcionamiento.

Si alguien me puede poner un ejemplo practico seria de agradecer.

La idea es poder pasar funciones entre clases, osea si tengo una clase A y una clase B quiero poder pasarle la funcion de la clase A a la clase B para que esta la ejecute. y no me sirve pasar la referencia de la clase A con this porque de esta manera necesito saber de antemano el nombre de las funciones y estas pueden ser variables o estar metidas en un array de funciones.


Título: Re: Pasar nombre de funcion como parametro de otra funcion en java
Publicado por: jhonatanAsm en 1 Agosto 2014, 23:27 pm
la clase reflection te brinda métodos para saber los nombres de parámetros, variables, métodos, etc. con el método getMethods() obtienes todos los métodos de una clase.

unos ejemplos en español:
http://www.javahispano.org/storage/contenidos/reflection.pdf