| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/01/2011 17:41:07
|
diegohsi
JavaTeenager
![[Avatar]](/images/avatar/9f22fc68c18087f096057fb3f2498c7e.png)
Membro desde: 30/05/2010 21:52:01
Mensagens: 180
Offline
|
Galera,
eu posso executar uma thread sem criar um objeto runnable nesse caso? Pois estou executando o código, porém não imprime nada na tela.
This message was edited 1 time. Last update was at 18/01/2011 14:26:48
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/01/2011 17:47:07
|
felipe.sales
Thread.start()
Membro desde: 20/07/2009 17:17:44
Mensagens: 41
Offline
|
eh pq o seu metodo esta escrito errado, eh "run" que deve se chamar e não "rum"
|
SCJP 6. São Miguel, guardai-me e defendei-me no combate. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/01/2011 17:50:14
|
esmiralha
JavaEvangelist
Membro desde: 19/07/2006 09:04:42
Mensagens: 402
Offline
|
Esse já estava pensando na sexta-feira!
This message was edited 1 time. Last update was at 14/01/2011 17:51:10
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/01/2011 19:50:05
|
erictorti
Thread.start()
Membro desde: 02/04/2010 23:11:58
Mensagens: 25
Offline
|
esmiralha wrote:Esse já estava pensando na sexta-feira! 
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/01/2011 19:53:23
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Como Thread implementa Runnable, você continua implementando um Runnable.
Entretanto, sobrescrever Thread não é considerada uma boa prática. O ideal é implementar a interface Runnable diretamente.
Dica. Sempre que sobrescrever um método, de qualquer classe, coloque a anotação @Override em cima desse método. Assim, se vc cometer um erro de grafia (como ocorreu nesse seu código), o compilador vai saber que sua intenção era sobrescrever alguma coisa, e vai te avisar que o método em questão não sobrescreve nada.
Isso é ainda mais útil quando você estiver sobrescrevendo suas próprias interfaces e classes. Assim, se você alterar o nome de um método na classe pai, o compilador automaticamente dará erro em todas as classes filhas onde você esquecer de alterar o nome do método também.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/01/2011 20:00:02
|
erictorti
Thread.start()
Membro desde: 02/04/2010 23:11:58
Mensagens: 25
Offline
|
ViniGodoy wrote:Sempre que sobrescrever um método, de qualquer classe, coloque a anotação @Override em cima desse método.
Legal, Vini, muito oportuna essa observação.
Às vezes, parece desnecessária a anotação, mas, nesse caso, ela teria se provado bem valiosa
Valeu.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/01/2011 20:14:25
|
diegohsi
JavaTeenager
![[Avatar]](/images/avatar/9f22fc68c18087f096057fb3f2498c7e.png)
Membro desde: 30/05/2010 21:52:01
Mensagens: 180
Offline
|
ViniGodoy wrote:Como Thread implementa Runnable, você continua implementando um Runnable.  Entretanto, sobrescrever Thread não é considerada uma boa prática. O ideal é implementar a interface Runnable diretamente. Dica. Sempre que sobrescrever um método, de qualquer classe, coloque a anotação @Override em cima desse método. Assim, se vc cometer um erro de grafia (como ocorreu nesse seu código), o compilador vai saber que sua intenção era sobrescrever alguma coisa, e vai te avisar que o método em questão não sobrescreve nada. Isso é ainda mais útil quando você estiver sobrescrevendo suas próprias interfaces e classes. Assim, se você alterar o nome de um método na classe pai, o compilador automaticamente dará erro em todas as classes filhas onde você esquecer de alterar o nome do método também.
Valeu vini, eu ja tinha visto esse @override mas não sabia pra que servia. Agora eu estava vendo no livro da katy realmente é melhor implementar runable.
This message was edited 1 time. Last update was at 14/01/2011 20:17:00
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/01/2011 11:06:40
|
diegohsi
JavaTeenager
![[Avatar]](/images/avatar/9f22fc68c18087f096057fb3f2498c7e.png)
Membro desde: 30/05/2010 21:52:01
Mensagens: 180
Offline
|
Mesmo eu corrigindo o metodo run(), ainda ocorre o erro de que eu não implementei runnable. Segue a minha pergunta novamente, "eu posso executar uma thread sem criar um objeto runnable nesse caso, ou sem implementar Runnable, extendendo apenas Thread??
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 16:28:45
|
brrodo
JavaTeenager
Membro desde: 07/02/2009 23:31:16
Mensagens: 173
Offline
|
diegohsi wrote:Mesmo eu corrigindo o metodo run(), ainda ocorre o erro de que eu não implementei runnable. Segue a minha pergunta novamente, "eu posso executar uma thread sem criar um objeto runnable nesse caso, ou sem implementar Runnable, extendendo apenas Thread??
A classe Thread implementa Runnable. Isso responde sua pergunta?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 16:53:42
|
diegohsi
JavaTeenager
![[Avatar]](/images/avatar/9f22fc68c18087f096057fb3f2498c7e.png)
Membro desde: 30/05/2010 21:52:01
Mensagens: 180
Offline
|
brrodo wrote:
diegohsi wrote:Mesmo eu corrigindo o metodo run(), ainda ocorre o erro de que eu não implementei runnable. Segue a minha pergunta novamente, "eu posso executar uma thread sem criar um objeto runnable nesse caso, ou sem implementar Runnable, extendendo apenas Thread??
A classe Thread implementa Runnable. Isso responde sua pergunta?
Veja bem Brrodo, li no livro da katy e o que entendi: Para executar, startar, enfim, uma Thread, temos que ter um objeto Runnable(trabalho) e um objeto Thread (trabalhador). Uma Thread necessita de ambos para existir uma nova pilha de métodos. Para criar um OBJETO Thread podemos exetender Thread (não aconselhavel) ou implementar Runnable. Agora a respota para a minha pergunta: 'Para executar uma Thread ou, criar uma nova pilha de métodos, é necessário de pelomenos um objeto THread e um Objeto Runnable." OBS: Como Runnable é uma interface com o método run();, precisamos sobrescreve-lo, lembre-se: Sobrescrever o método run() de Runnable, pois se extendermos a classe Thread que possui um método run() ja sobrescrito da interface Runnable, ele será executado na pilha normalmente e não será criada uma nova pilha. Pessoal, se eu escrevi alguma besteira me corrijam por favor, pois foi isso que entendi até o momento, as vezes eu não soube compriender na respostas anteriores dos nossos amigos.
This message was edited 1 time. Last update was at 17/01/2011 16:54:49
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 16:56:06
|
diegohsi
JavaTeenager
![[Avatar]](/images/avatar/9f22fc68c18087f096057fb3f2498c7e.png)
Membro desde: 30/05/2010 21:52:01
Mensagens: 180
Offline
|
Lembrando que ainda não concluí o capítulo de Thread.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 13:17:42
|
programadora
JavaChild
![[Avatar]](/images/avatar/4333c597da355d04f6b313a15d146331.jpg)
Membro desde: 17/03/2008 16:40:13
Mensagens: 112
Offline
|
O erro que ocorre, provavelmente decorre do fato de vc não implementar o método run() corretamente. O correto é:
você esqueceu do "public".
vlw
|
Faço programas... E daí?? |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 13:26:42
|
brrodo
JavaTeenager
Membro desde: 07/02/2009 23:31:16
Mensagens: 173
Offline
|
programadora wrote:O erro que ocorre, provavelmente decorre do fato de vc não implementar o método run() corretamente. O correto é:
você esqueceu do "public".
vlw
É, mais aí teríamos erro de compilação.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2011 09:15:58
|
programadora
JavaChild
![[Avatar]](/images/avatar/4333c597da355d04f6b313a15d146331.jpg)
Membro desde: 17/03/2008 16:40:13
Mensagens: 112
Offline
|
Erro de compilação porque? O código do diegohsi funciona perfeitamente após a mudança que sugeri.
|
Faço programas... E daí?? |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2011 10:06:01
|
brrodo
JavaTeenager
Membro desde: 07/02/2009 23:31:16
Mensagens: 173
Offline
|
programadora wrote:Erro de compilação porque? O código do diegohsi funciona perfeitamente após a mudança que sugeri.
Teríamos erro de compilação caso o problema fosse o modificador de acesso do método "run()" estar em "default" e não "public" e não o erro de que eu "não foi implementado runnable".
|
|
|
 |
|
|