Nome dinamico no TimerTask

Pessoal, :smiley:

Estou estou colocando um processo para agendar da seguinte forma:

        TimerTask myTask = new TimerTask() { 
        public void run() { 
         DbAuto.dbauto(); 
        } 
        }; 
        timer.scheduleAtFixedRate(myTask,0,v_dbauto_sleep); 
  Estou definindo com o nome [b]myTak[/b], so que este nome pode mudar, pois o usuário vai definir um nome, como posso fazer este nome dinamico ?

Valeu… :smiley:

Simplesmente passe a variavel na qual vc vai pegar o input do usuario :wink:

Rafael

Mano, :roll:

 Você esta dizendo para assim:
    
    String nome_dinamico = "jornal_hoje";

    TimerTask nome_dinamico = new TimerTask() 

…??? :?:

Ops, eu tinha entendido erroneamente a tua questao. O que voce quer nao eh “definir o nome dinamicamente”, mas sim invocar dinamicamente com base em um nome fornecido pelo usuario.

O nome da variavel vc nao vai conseguir definir dinamicamente (pelo menos nao de uma maneira simples). O que voce pode fazer entao eh associar em um map o nome fornecido pelo usuario com uma instancia da timertask… Algo como

Map tasks = new HashMap();
tasks.put("blah", new TimerTask());

// ....
timer.scheduleAtFixedRate((TimerTask)tasks.get("blah"), 0,vDbautoSleep); 

Outro lance: em Java, os momes nao tem underscore… logo, o correto eh vc chamar a variavel de “nomeDinamico” ao inves de “nome_dinamico”; “vDbAutoSleep” ao inves de “v_db_auto_spleep”. Nesse ultimo caso, se “v” eh algo para identificar uma “variavel”, eh desnecessario tambem, ja que foge totalmente do padrao.

Rafael