Nome dinamico no TimerTask

3 respostas
cesalvador

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:

3 Respostas

Rafael_Steil

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

Rafael

cesalvador

Mano, :roll:

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

    TimerTask nome_dinamico = new TimerTask()

…??? :?:

Rafael_Steil

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

Criado 10 de março de 2005
Ultima resposta 10 de mar. de 2005
Respostas 3
Participantes 2