| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2009 14:53:06
|
Matheus Leandro Ferreira
JavaChild
![[Avatar]](/images/avatar/8f63ef371d249dc31f244c24a0abb437.jpg)
Membro desde: 23/12/2008 07:01:02
Mensagens: 135
Offline
|
Primeiro a situação que funciona:
Segundo a situação que não funciona:
A segunda, ocorre NullPointerException. Alguem sabe me informar o motivo ?
This message was edited 1 time. Last update was at 31/03/2009 14:53:44
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2009 15:24:52
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20570
Localização: Curitiba/PR
Offline
|
Realmente intrigante, mas acho que deve ter algo a ver com o AutoBoxing. Note que assim não dá erro:
This message was edited 1 time. Last update was at 31/03/2009 15:25:20
|
@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) 31/03/2009 15:29:11
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20570
Localização: Curitiba/PR
Offline
|
Só um comentário... isso não é um "if com inline", mas o operador ternário.
Esse operador espera o mesmo tipo de dado de ambos os lados do :
Talvez esteja aí a solução do problema.
|
@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) 31/03/2009 15:32:40
|
Matheus Leandro Ferreira
JavaChild
![[Avatar]](/images/avatar/8f63ef371d249dc31f244c24a0abb437.jpg)
Membro desde: 23/12/2008 07:01:02
Mensagens: 135
Offline
|
Já tinha encontrado essa situação:
Porém estou utilizando o java 6 e não deveria necessitar o uso de Boolean.FALSE e Boolean.TRUE.
Seria isso bug do Java ?
Obs: Operador ternario é uma forma compacta de expressar o if e else, ou seja, o mesmo que if in-line.. ou não ?
This message was edited 1 time. Last update was at 31/03/2009 15:34:32
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2009 15:53:06
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20570
Localização: Curitiba/PR
Offline
|
É que a palavra inline não é sinônimo para "curto". De qualquer forma, esse operador não é exatamente igual a um if, pq ele exige o retorno de um valor. Você não pode simplesmente fazer:
Que dá erro.
|
@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) 31/03/2009 15:59:02
|
Matheus Leandro Ferreira
JavaChild
![[Avatar]](/images/avatar/8f63ef371d249dc31f244c24a0abb437.jpg)
Membro desde: 23/12/2008 07:01:02
Mensagens: 135
Offline
|
Claro.
Mas então, o que seria um if inline para você ?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2009 16:04:57
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20570
Localização: Curitiba/PR
Offline
|
Inline é um código que depois de compilado irá desaparecer. Para mim, um if inline seria analisado em tempo de compilação e só o resultado seria colocado no binário final. Mas enfim, acho que estamos fugindo do ponto aqui. Ainda estou curioso para saber de onde vem esse NullPointerException. O que acontece é que com Boolean.TRUE e Boolean.FALSE o Java não fará auto-boxing, e por isso, o erro não ocorre. Ainda assim, eu esperaria que o compilador fosse mais esperto que isso, ou será que meu chute está errado?
This message was edited 1 time. Last update was at 31/03/2009 16:05:13
|
@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) 31/03/2009 16:09:38
|
Matheus Leandro Ferreira
JavaChild
![[Avatar]](/images/avatar/8f63ef371d249dc31f244c24a0abb437.jpg)
Membro desde: 23/12/2008 07:01:02
Mensagens: 135
Offline
|
Poisé,
também achava que o compilador seria esperto o suficiente para identificar essa situação.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2009 09:27:07
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Hum...
O programa é equivalente a este aqui:
Quando na verdade você acharia que ele seria equivalente a este aqui:
Pensem mais um pouco. Dá a impressão que é algum lado obscuro das regras de "autoboxing" que interferem com a resolução de tipos no "?". Pode até ser algum bug esquisito do compilador.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2009 09:59:20
|
Matheus Leandro Ferreira
JavaChild
![[Avatar]](/images/avatar/8f63ef371d249dc31f244c24a0abb437.jpg)
Membro desde: 23/12/2008 07:01:02
Mensagens: 135
Offline
|
Achei muito bom isso!
Fiz um teste com String:
Perfeito!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2009 10:03:59
|
Marky.Vasconcelos
Moderador
![[Avatar]](/images/avatar/04940fadf3702cbd84b7a48161037c4f.png)
Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline
|
Matheus Leandro Ferreira wrote:Achei muito bom isso!
Fiz um teste com String:
Perfeito!
POG!
O problema é que não é possivel atribuir o valor null a tipos primitivos.
Eu não testei mas isso funciona com int, double, etc?
|
Facebook @MarkyHitchhiker +Mark WP: MarkyTech's
Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais
DefaultTableModel?! PARE! Não faça isso! Faça melhor!
Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)
Develop games is fantastic, with words you can make worlds!!!
DON'T PANIC!
MarkyHitchhiker's Blog! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2009 10:12:52
|
Matheus Leandro Ferreira
JavaChild
![[Avatar]](/images/avatar/8f63ef371d249dc31f244c24a0abb437.jpg)
Membro desde: 23/12/2008 07:01:02
Mensagens: 135
Offline
|
Mark_Ameba wrote:
Matheus Leandro Ferreira wrote:Achei muito bom isso!
Fiz um teste com String:
Perfeito!
POG!
O problema é que não é possivel atribuir o valor null a tipos primitivos.
Eu não testei mas isso funciona com int, double, etc?
Exato, mas o boolean que utilizei não era primitivo e sim Objeto. (podendo receber valor null)
só com o tipo Boolean da problema! mas o lance é separar as situações mesmo.. bug loco no compilador.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2009 10:15:14
|
Matheus Leandro Ferreira
JavaChild
![[Avatar]](/images/avatar/8f63ef371d249dc31f244c24a0abb437.jpg)
Membro desde: 23/12/2008 07:01:02
Mensagens: 135
Offline
|
Outro problema que encontrei foi esse.. Comparando wrappers:
Obs: Quando você usa == para comparar, ele acaba comparando a referencia do objeto e utilizando o método equals() ele compara o valor.
Obs2: Fui atras disso... isso seria um foro na implementação do Flyweight Pattern ???
This message was edited 1 time. Last update was at 01/04/2009 10:19:22
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2009 10:34:29
|
mario.fts
GUJ Ranger
![[Avatar]](/images/avatar/9e96d422fba85185a33829439f5df09d.jpg)
Membro desde: 14/05/2008 09:41:06
Mensagens: 815
Localização: São Paulo - ZL
Offline
|
eu li algo a respeito disso, acho que tem a ver com o fato de 129 não caber em um byte... (caia até na certificação acho) vou dar uma procurada e depois posto aqui
This message was edited 1 time. Last update was at 01/04/2009 12:23:07
|
Mário Amaral Gonçalves
"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." - Edsger Dijkstra |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2009 11:03:08
|
Marky.Vasconcelos
Moderador
![[Avatar]](/images/avatar/04940fadf3702cbd84b7a48161037c4f.png)
Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline
|
Lembro de ver isso em tópicos bem antigos do GUJ. Mas lembro que após 128 o Integer já aloca um novo espaço. Não lembro direito. Tem que procurar mesmo.
|
Facebook @MarkyHitchhiker +Mark WP: MarkyTech's
Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais
DefaultTableModel?! PARE! Não faça isso! Faça melhor!
Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)
Develop games is fantastic, with words you can make worlds!!!
DON'T PANIC!
MarkyHitchhiker's Blog! |
|
|
 |
|
|