| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2011 18:27:13
|
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
|
Depois de ler isso no StackOverflow fiquei surpreso com algumas coisas.
Mas a quem mais me surpreendeu (não li todas) foi apertar Ctrl + Shift + F1 em algum programa Swing, depois da uma olhada no Console.
Se você fizer simplesmente throw null de dentro de um código é compilado e lançado um NullPointer quando executado naquele ponto.
O seguinte código que não é bem uma hidden feature mas é bem util pra quem não sabe
O que acontece é que voce esta criando uma class que extende HashMap e criando um bloco de codigo que vai ser executado nele.
È possivel juntar tipos no Generics
Dai só vai aceitar um parametro que seja Foo e Bar ao mesmo tempo.
Tem essa classe http://www.docjar.com/html/api/ClassLib/Common/sun/misc/Unsafe.java.html com ela
You can;
* Create an object without calling a constructor.
* Throw any exception even Exception without worrying about throws clauses on methods. (There are other way to do this I know)
* Get/set randomly accessed fields in an object without using reflection.
* allocate/free/copy/resize a block of memory which can be long (64-bit) in size.
* Obtain the location of fields in an object or static fields in a class.
* independently lock and unlock an object lock. (like synchronize without a block)
* define a class from provided byte codes. Rather than the classloader determining what the byte code should be. (You can do this with reflection as well)
Mas o uso incorreto dessa classe pode matar a JVM.
Isso retorna true.
Alguém sabe mais alguma?
This message was edited 1 time. Last update was at 28/01/2011 18:29:20
|
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) 28/01/2011 23:31:50
|
davidbuzatto
Moderador
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline
|
Sinceramente, não vi utilidade alguma no exemplo do mapa.
Vc gasta a mesma quantidade de linhas caso fosse fazer da forma tradicional, define mais uma classe sem haver necessidade, além de tornar o código difícil de ler.
Tah, se for usar como parâmetro para um método pode até ser útil.
Os genéricos tem muitas coisas que a gente não aprende normalmente. Dá uma olhadinha no livro "Java Generics and Collections".
Olhe um exemplo tirado do livro citado:
Tem certeza que seu exemplo de URL retorna true?
Esse exemplo aqui retorna true:
Afinal, 208.109.100.149 é o IP apontado pelo endereço www.guj.com.br.
[]'s
|
Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."
http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/01/2011 12:46:29
|
AbelBueno
Virtual Machine Man
Membro desde: 04/08/2010 09:37:57
Mensagens: 543
Offline
|
Acho que o exemplo do mapa pode ser interessante se for um mapa estático para a classe:
Para adicionar, esse link aqui tem uma série de dicas interessantes.
This message was edited 1 time. Last update was at 29/01/2011 12:47:18
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/01/2011 00:55:37
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
o ruim do Unsafe é ser so Sun tambem. O pessoal do XStream e do Objenesis encapsulam isso para voce poder fazer essas magicas em qualquer JVM.
O do mapa é comum encontrar em codigo por ai.
E o da URL é um classico aviso, pra gente tomar cuidado com a velocidade de URLs dentro de Sets e como chaves em Maps, ou contains em qualquer collection.
nao conhecia o truque do swing.
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2011 11:59:40
|
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
|
É.. pra falar a verdade esses são só exemplos incomuns. Mas o do Swing realmente me chamou a atenção. Alias, eu descobri algo hoje sem querer. Pode-se adicionar qualquer modificador antes de package que funciona. Isso compila:
This message was edited 1 time. Last update was at 31/01/2011 11:59:56
|
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! |
|
|
 |
|
|