Título: Duda: ¿Como hago esto en Java? Publicado por: Desiresportal en 20 Diciembre 2017, 15:06 pm Muy buenas.
Por la razón que sea he empezado a programar en Java y tengo una duda al respecto. En C++ podía hacer algo como lo siguiente para hacer una programación final mas adaptable: Código
¿Como puedo hacer algo así en Java? He buscado algo para Java, pero solo encuentro callbacks que me parecen mas difíciles de usar. Sino, lo único que encuentro es para javascript. Quiero desarrollar una librería que ya sé que va a ser muy larga y rebuscar en el código Java para adaptarlo a cada proyecto me parece una locura. Me sería de gran ayuda. Gracias de antemano. Título: Re: Duda: ¿Como hago esto en Java? Publicado por: Maurice_Lupin en 22 Diciembre 2017, 16:56 pm Hola Desiresportal.
Para llamar a una función como parametro puedes implementar interface http://java-buddy.blogspot.pe/2013/02/implement-callback-method-using.html Saludos. Título: Re: Duda: ¿Como hago esto en Java? Publicado por: Desiresportal en 26 Diciembre 2017, 13:29 pm No termino de entender muy bien los callback.
He intentado adaptar lo que encontré en internet a mi caso, pero no he llegado a nada util. Paso a explicar el uso que quiero darle y ya me direis. La idea es desarrollar una libreria tal que así para no retocarla de proyecto en proyecto: Código: public class claseEscena { Y despues, para desarrollar el codigo de un proyecto concreto, algo mas o menos así: Código: public void miFuncionAct1() { En C++ lodré hacer algo así, pero en Java estoy teniendo serias dificultades para simplificar la programacion final de cualquier proyecto. ¿Me podeis poner algun ejemplo de como lograrlo? Evidentemente, el gameLoop lo he simplificado en el ejemplo porque la intencion del ejemplo es dejarlo lo mas limpio posible. Gracias de antemano. Título: Re: Duda: ¿Como hago esto en Java? Publicado por: ivancea96 en 26 Diciembre 2017, 13:50 pm Empecemos por lo básico.
En Java no vas a poder pasar punteros a funciones como tal. En Java se pasan objetos o valores nativos, que no vienen al caso ahora. Cuando una función recibe un "callback", del tipo que sea, lo que recibe es un objeto con (generalmente) 1 método que será llamado. Por ejemplo, una función podría recibir como parámetro una interfaz como esta: Código
Y esta sería la clae que almacena el "callback": Código
Eso es todo, no hay más. En Java todo es muy simple, solo hay que adaptarse a ello. Además, en Java 8, se ha agregado una sintaxis para los callbacks de este estilo. Antes, se hacía así una "lambda": Código
Ahora, con Java 8: Código
Título: Re: Duda: ¿Como hago esto en Java? Publicado por: Maurice_Lupin en 26 Diciembre 2017, 16:04 pm Así quedaría.
Código
Saludos. Título: Re: Duda: ¿Como hago esto en Java? Publicado por: Desiresportal en 29 Diciembre 2017, 14:18 pm Muchas gracias. Lo probaré cuanto antes.
Título: Re: Duda: ¿Como hago esto en Java? Publicado por: Desiresportal en 14 Marzo 2018, 12:12 pm Me ha funcionado a la perfección. Muchas gracias por la ayuda. Seguro que vuelvo con mas dudas otro día.
De nuevo: gracias. Título: Re: Duda: ¿Como hago esto en Java? Publicado por: ivancea96 en 15 Marzo 2018, 20:09 pm 3 meses para un código de 50 líneas!
|