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

Pasar argumentos a una funcion declarada en el momento

Estas en el tema de Pasar argumentos a una funcion declarada en el momento en el foro de Java en Foros del Web. Hola gente. Código: void cambiarDato(TipoVar X) { TimerTask timerTask = new TimerTask() { public void run() { Cosas que usan X } }; // Aquí ...
  #1 (permalink)  
Antiguo 26/10/2010, 16:58
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 2 meses
Puntos: 2
Pasar argumentos a una funcion declarada en el momento

Hola gente.

Código:
    void cambiarDato(TipoVar X) {
        
        TimerTask timerTask = new TimerTask()
        {
             public void run()
             {
                 Cosas que usan X
                
             }
         };

         // Aquí se pone en marcha el timer cada segundo.
         Timer timer = new Timer();
         // Dentro de 0 milisegundos avísame cada 1000 milisegundos
         timer.scheduleAtFixedRate(timerTask, 0, 100);

    }

Tengo el timer que utiliza definiendo una funcion, la variable X de fuera. Cómo demonios la introduzco?. No puedo hacerla global ni nada, porque es algo que debo recibir cada vez de la ejecución en el instante. ¿Como se pasan parametros?. Se podría definir otra funcion que lo haga?.
__________________
Darkgaze
  #2 (permalink)  
Antiguo 26/10/2010, 22:49
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Pasar argumentos a una funcion declarada en el momento

Hola:

Una opción es tal cual lo tienes pero declarando TipoVar X como final

void cambiarDato (final TipoVar X)

Otra opción es guardar esa variable en un atributo de la clase, así tendrás acceso a él desde dentro del TimerTask. Eso sí, tienes que tener cuidado de que no haya dos TimerTask ejecutándose a la vez con distintos valores del atributo, porque sólo hay un atributo en la clase y sólo puede tener un valor.

La tercera opción es hacer una clase que herede de TimerTask, que reciba el parámetro en el constructor y se lo guarde.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: argumentos, funcion, pasar
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 13:34.