FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
La solucion propuesta no me parece correcta, se esta mezclando dos cosas diferentes en una misma funcion no se debe mezclar el interface con la implementacion.
Que pasaria si en lugar de mostrar o no mostrar un simple mensaje de error fuese necesario hacer muy diferentes acciones segun desde donde se llame ? , por ejemplo en unos casos podriamos necesitar enviar por correo electronico un aviso, en otros poner un simple mensaje, en otros casos no hacer nada, en otros mostrar el error de otra forma distinta a una simple ventana con un mensaje, etc. tendrias que pasarle a esa funcion un monton de parametros no una simple variable booleana. Lo logico en ese caso es que la funcion devuelva un valor verdadero o falso que indique si ha hecho lo que tenga que hacer, y el mensaje se muestre desde el formulario que hace la llamada a esa funcion en funcion del resultado devuelto por la funcion. Incluso podria paracer mas logico que el siguiente codigo tambien estuviese fuera de la funcion: Código:
if(!viewer.getMolecula().EsAdyacente(A, this)){ viewer.showMessage("Error, seleccione un fragmento correcto", "Accion Invalida", 2); } |
#2
|
||||
|
||||
Supongo que la máquina virtual de Java tiene pila y que también es posible obtener la "dirección" de una función. Si es así, entonces podría hacerse obteniendo la dirección de las funciones F2() y F3(). Luego, en F1(), se extrae la dirección del llamante de la pila y se vuelve a apilar para evitar problemas. Al menos en las máquinas "reales" puede hacerse.
[edit]En Pascal sería algo así:
Última edición por Ñuño Martínez fecha: 17-01-2008 a las 12:00:54. |
#3
|
||||
|
||||
Muy cierta Mick tu observacion, lo que sucede y fue lo que me hizo irme por ese camino es que el evento, en este caso el mensaje no es controlado por el Frame sino por un componente que esta dentro del frame que se llama viewer como ves en el codigo y que este a su vez tiene una clase para el manejo de eventos del mause (MauseManajer.java) que es uno de los lugares donde se llama la funcion. Por hacer el camino mas corto lo hize mas ambiaguo, vale tu aclaracion, la tendre en cuenta....
En cuento a lo que comentas Ñuño esta muy interesante, tendre que echarle un vistazo a la aritmetica y el trabajo con apuntadores en Java que nunca he trabajado con eso. Se que en C++ si es posible hacer eso con los apuntadores a funciones, etc, pero ya veremos si en Java se puede, os hare saber enseguida.... Un saludo oracle....
__________________
El único hombre que no se equivoca es el que nunca hace nada. |
#4
|
|||
|
|||
No es culpa del metodo
La linea no es importante realmente, lo importante es que ese boleano M este declarado como una variable de tipo protected al inicio de tu clase(con sus respectivos getters y setters) y asi no necesitas agregar parametros ni nada por el estilo y tu método(no función como la llamas) no será dependiente.
Esa es la solución. |
#5
|
||||
|
||||
En java no existen punteros.
__________________
Héctor Geraldino Software Engineer |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Funcion para buscar cadena dentro de otra cadena y el numero de veces | flystar | Varios | 3 | 02-07-2007 22:48:08 |
Llamar de una función a otra | jorgegetafe | Varios | 6 | 05-06-2007 15:53:19 |
Como invoco un documento PDF | ASAPLTDA | Varios | 3 | 09-04-2007 03:46:02 |
Funcion del tabulador con otra tecla | gryphus | OOP | 2 | 18-04-2005 11:00:44 |
ejecutar una funcion d otra Unit | negama | Varios | 2 | 08-09-2003 19:32:18 |
|