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?:
//La funcion a pasar
public function Hola():void{
trace("Hola mundo");
}
//Esta funcion ejecuta la funcion pasada en su parametro
public function Saluda(parametro:Function):void{
parametro();
}
//Ejecutamos la funcion "Saluda" pasandole como parametro el nombre de la funcion "Hola" sin parentesis
Saluda(Hola);
Resultado en consola "Hola mundo"
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..
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.
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