<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentários sobre: Não posso descobrir nem instanciar tipos genéricos! Porque?</title>
	<atom:link href="http://blog.caelum.com.br/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.caelum.com.br/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/</link>
	<description>blog dos desenvolvedores da Caelum</description>
	<lastBuildDate>Sun, 12 Feb 2012 05:01:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Por: Customizando a produção de dependências no CDI &#124; blog.caelum.com.br</title>
		<link>http://blog.caelum.com.br/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/comment-page-1/#comment-84980</link>
		<dc:creator>Customizando a produção de dependências no CDI &#124; blog.caelum.com.br</dc:creator>
		<pubDate>Thu, 14 Jul 2011 11:22:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2008/04/28/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/#comment-84980</guid>
		<description>[...] receber a classe como parâmetro porque o tipo do T não é mantido no bytecode. É a conhecida erasure. Agora que temos o DAO genérico, podemos pedir para o Weld injeáa-lo, ao [...]</description>
		<content:encoded><![CDATA[<p>[...] receber a classe como parâmetro porque o tipo do T não é mantido no bytecode. É a conhecida erasure. Agora que temos o DAO genérico, podemos pedir para o Weld injeáa-lo, ao [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Alexandre Saudate</title>
		<link>http://blog.caelum.com.br/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/comment-page-1/#comment-48260</link>
		<dc:creator>Alexandre Saudate</dc:creator>
		<pubDate>Thu, 02 Oct 2008 12:41:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2008/04/28/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/#comment-48260</guid>
		<description>Corrigindo, comentário do Marcelo Manzan</description>
		<content:encoded><![CDATA[<p>Corrigindo, comentário do Marcelo Manzan</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Alexandre Saudate</title>
		<link>http://blog.caelum.com.br/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/comment-page-1/#comment-48259</link>
		<dc:creator>Alexandre Saudate</dc:creator>
		<pubDate>Thu, 02 Oct 2008 12:41:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2008/04/28/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/#comment-48259</guid>
		<description>Faço coro com o comentário do Paulo Silveira. O JBoss Seam utiliza uma estrutura parecida para gerenciar entidades persistentes. Se quiserem saber do que estou falando, vejam a classe EntityHome, do Seam.</description>
		<content:encoded><![CDATA[<p>Faço coro com o comentário do Paulo Silveira. O JBoss Seam utiliza uma estrutura parecida para gerenciar entidades persistentes. Se quiserem saber do que estou falando, vejam a classe EntityHome, do Seam.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Anselmo Battisti</title>
		<link>http://blog.caelum.com.br/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/comment-page-1/#comment-47463</link>
		<dc:creator>Anselmo Battisti</dc:creator>
		<pubDate>Sat, 06 Sep 2008 15:13:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2008/04/28/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/#comment-47463</guid>
		<description>Parabéns foi de grande valia seu post, muito obrigado!</description>
		<content:encoded><![CDATA[<p>Parabéns foi de grande valia seu post, muito obrigado!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Marcelo Manzan</title>
		<link>http://blog.caelum.com.br/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/comment-page-1/#comment-38309</link>
		<dc:creator>Marcelo Manzan</dc:creator>
		<pubDate>Fri, 16 May 2008 18:37:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2008/04/28/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/#comment-38309</guid>
		<description>É... inevitavelmente é precido estender a classe. Seria até melhor considerá-la abstrata na definição, evitando seu uso direto e obtendo erro apenas em tempo de execução. Isso pode ser incômodo, mas nem sempre...

Abraços!

PS.: Eu desconhecia o artigo anterior :-)</description>
		<content:encoded><![CDATA[<p>É&#8230; inevitavelmente é precido estender a classe. Seria até melhor considerá-la abstrata na definição, evitando seu uso direto e obtendo erro apenas em tempo de execução. Isso pode ser incômodo, mas nem sempre&#8230;</p>
<p>Abraços!</p>
<p>PS.: Eu desconhecia o artigo anterior <img src='http://caelum.wpengine.netdna-cdn.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Paulo Silveira</title>
		<link>http://blog.caelum.com.br/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/comment-page-1/#comment-38305</link>
		<dc:creator>Paulo Silveira</dc:creator>
		<pubDate>Fri, 16 May 2008 18:16:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2008/04/28/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/#comment-38305</guid>
		<description>Ola Mazan!

Isso é o que esta descrito aqui:
http://blog.caelum.com.br/2006/10/29/brincando-com-generics-o-bizarregenericdao/

Mas pra isso voce vai precisar estender a classe... um tanto incomodo.</description>
		<content:encoded><![CDATA[<p>Ola Mazan!</p>
<p>Isso é o que esta descrito aqui:<br />
<a href="http://blog.caelum.com.br/2006/10/29/brincando-com-generics-o-bizarregenericdao/" rel="nofollow">http://blog.caelum.com.br/2006/10/29/brincando-com-generics-o-bizarregenericdao/</a></p>
<p>Mas pra isso voce vai precisar estender a classe&#8230; um tanto incomodo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Marcelo Manzan</title>
		<link>http://blog.caelum.com.br/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/comment-page-1/#comment-38304</link>
		<dc:creator>Marcelo Manzan</dc:creator>
		<pubDate>Fri, 16 May 2008 18:12:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2008/04/28/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/#comment-38304</guid>
		<description>Um exemplo que pode dar certo.
&lt;code&gt;
public class Dao&lt;T&gt; {
	private Class&lt;?&gt; paramType;

	public Dao() {
		this.paramType = (Class&lt;?&gt;) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
	}
	@SuppressWarnings(&quot;unchecked&quot;)
	public T cria() throws Exception {
		return (T) this.paramType.newInstance();
	}
}
&lt;/code&gt;

Isso funciona bem, e pode ajudar a sanar algumas necessidades.
Abraços.</description>
		<content:encoded><![CDATA[<p>Um exemplo que pode dar certo.<br />
<code><br />
public class Dao&lt;T&gt; {<br />
	private Class&lt;?&gt; paramType;</p>
<p>	public Dao() {<br />
		this.paramType = (Class&lt;?&gt;) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];<br />
	}<br />
	@SuppressWarnings("unchecked")<br />
	public T cria() throws Exception {<br />
		return (T) this.paramType.newInstance();<br />
	}<br />
}<br />
</code></p>
<p>Isso funciona bem, e pode ajudar a sanar algumas necessidades.<br />
Abraços.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Paulo Silveira</title>
		<link>http://blog.caelum.com.br/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/comment-page-1/#comment-37729</link>
		<dc:creator>Paulo Silveira</dc:creator>
		<pubDate>Fri, 09 May 2008 01:50:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caelum.com.br/2008/04/28/nao-posso-descobrir-nem-instanciar-tipos-genericos-porque/#comment-37729</guid>
		<description>Ola Ronildo

Parece um tanto estranho voce ter de receber um objeto para poder listar todos aqueles objetos, nao concorda? Exemplo: Num Dao de funcionario generico, pra listar TODOS os funcionarios, eu preciso passar um como argumento.

E como ficaria para ler um Funcionario? Precisaria receber um ID e outro funcionario!!!!

É possivel sim buscar todos sem passar esse argumento estranho guardando o Class da classe... como no link do dao generico...

abracos!</description>
		<content:encoded><![CDATA[<p>Ola Ronildo</p>
<p>Parece um tanto estranho voce ter de receber um objeto para poder listar todos aqueles objetos, nao concorda? Exemplo: Num Dao de funcionario generico, pra listar TODOS os funcionarios, eu preciso passar um como argumento.</p>
<p>E como ficaria para ler um Funcionario? Precisaria receber um ID e outro funcionario!!!!</p>
<p>É possivel sim buscar todos sem passar esse argumento estranho guardando o Class da classe&#8230; como no link do dao generico&#8230;</p>
<p>abracos!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

