<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Utilizando o Generics para instanciar objetos"]]></title>
		<link>http://www.guj.com.br/posts/list/4.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Utilizando o Generics para instanciar objetos"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ E aí pessoal. blz ?<br /> <br /> Seguinte, estou querendo fazer algo assim, porem nao compila:<br /> <br /> [code]<br /> class A&lt;T extends Object&gt;<br /> {<br />   private T objeto;<br />   <br />   public A()<br />   {<br />     objeto = new T();<br />   }<br /> }<br /> [/code]<br /> <br /> Tem como fazer isso ou não ?<br /> <br /> VLW]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/438875/utilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/438875/utilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Mon, 18 Feb 2008 20:20:32]]> GMT</pubDate>
				<author><![CDATA[ baison]]></author>
			</item>
			<item>
				<title>Re:Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ infelizmente não... voce nao sabe o tipo T em tempo de execução... (perceba que voce tambem nao saberia se T tem um construtor default)<br /> <br /> voce vai precisar receber essa Class tambem como argumento... do mesmo jeito como em um dao genério.<br /> <br /> <a class="snap_shots" href="http://blog.caelum.com.br/2007/04/08/generics-inferencia-de-tipos-e-reificacao-no-java-7/" target="_blank" rel="nofollow">http://blog.caelum.com.br/2007/04/08/generics-inferencia-de-tipos-e-reificacao-no-java-7/</a><br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/438877/reutilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/438877/reutilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Mon, 18 Feb 2008 20:32:24]]> GMT</pubDate>
				<author><![CDATA[ Paulo Silveira]]></author>
			</item>
			<item>
				<title>Re:Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ [quote=Paulo Silveira]infelizmente não... voce nao sabe o tipo T em tempo de execução... (perceba que voce tambem nao saberia se T tem um construtor default)<br /> <br /> voce vai precisar receber essa Class tambem como argumento... do mesmo jeito como em um dao genério.<br /> <br /> <a class="snap_shots" href="http://blog.caelum.com.br/2007/04/08/generics-inferencia-de-tipos-e-reificacao-no-java-7/" target="_blank" rel="nofollow">http://blog.caelum.com.br/2007/04/08/generics-inferencia-de-tipos-e-reificacao-no-java-7/</a><br /> [/quote]<br /> <br /> Kra, muito obrigado pela sua resposta, porem, nao consegui entender muito bem o que deve ser feito.<br /> <br /> Tem como você colocar um exemplo ?<br /> <br /> VLW]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/438882/reutilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/438882/reutilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Mon, 18 Feb 2008 21:03:50]]> GMT</pubDate>
				<author><![CDATA[ baison]]></author>
			</item>
			<item>
				<title>Re:Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ [quote=baison]<br /> Kra, muito obrigado pela sua resposta, porem, nao consegui entender muito bem o que deve ser feito.<br /> <br /> Tem como você colocar um exemplo ?[/quote]<br /> <br />  :?: [b]hummmm!!!![/b]<br /> <br />   :shock:    [b]Opssss, algo aleatório !!!!![/b]<br /> [code]<br /> class Object&lt;T&gt;{<br /> <br />    private T objeto;<br /> <br />    Object(T t){<br /> <br />    this.objeto=t;<br /> }<br /> <br /> class A&lt;T extends Object&gt;  <br />      {  <br />       private T objeto;  <br /> <br />       public A( Object&lt;T&gt; type ) throws Exception  <br />      {  <br />       this.objeto = type.newInstance();          <br /> <br />       {  <br /> <br />       }  <br /> }  <br /> <br /> [/code]<br /> <br />  :arrow: [b]Um exemplo no GUJ mesmo, acho que esse é menos abstrato que os demais Já citados[/b]<br />    <br /> [code] import org.springframework.orm.jpa.support.JpaDaoSupport;  <br />       <br /> public class DAO&lt;T&gt; extends JpaDaoSupport{  <br />           <br />         public T save(T t){  <br />             getJpaTemplate().persist(t);  <br />             return t;  <br />         }  <br />           <br />        public T update(T t){  <br />            return getJpaTemplate().merge(t);  <br />        }  <br />          <br />        public void delete(T t){  <br />            getJpaTemplate().remove(t);  <br />        }  <br /> }  [/code]<br /> <br /> <br /> [size=18][b]Generic class declarations[/b][/size]<br /> <br />   :idea: [b]Busque as regras dessa aplicação de Genéricos no Livro da Kathy Sierra/Bert Bates[/b]<br />             Existem diferentes tipos de sintaxe genérica (Capítulo 7:Genéricos e Conjuntos Página 330)<br /> <br /> [b]No Forum Javaranch tem exemplos interessantes fora o embate técnico é de alto nível.[/b]<br /> <br /> [url]http://saloon.javaranch.com[/url]<br /> <br /> [b]Abaixo outro exemplo: tirado do javaranch[/b] :wink: <br /> <br /> [code]public class Fruit&lt;E extends Fruit&lt;E&gt;&gt; implements Comparable&lt;E&gt;<br /> {<br />    public int compareTo(E other)<br />    {<br />       return 0;<br />    }<br />  <br />    public static void main(String[] args)<br />    {<br />       Apple a1 = new Apple();<br />       Apple a2 = new Apple();<br />       int compApps = a1.compareTo(a2);//Passes compilation<br />  <br />       Pear p = new Pear();<br />       int compAppAndPear = a1.compareTo(p); //Compilation error<br />  <br />       Fruit&lt;Apple&gt; f1 = new Apple();<br />  <br />       int compFruitAndApple = f1.compareTo(a1); //Passes compilation<br />       int compAppleAndFruit = a1.compareTo(f1); //Compilation error<br />  <br />       Fruit&lt;Apple&gt; f2 = new Apple();<br />       int compFruits = f1.compareTo(f2); //Compilation error<br />  <br />    }<br /> }<br />  <br /> class Apple extends Fruit&lt;Apple&gt;<br /> {<br /> }<br />  <br /> class Pear extends Fruit&lt;Pear&gt;<br /> {<br /> }<br /> [/code]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/438897/reutilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/438897/reutilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Mon, 18 Feb 2008 22:16:56]]> GMT</pubDate>
				<author><![CDATA[ Marcio Duran]]></author>
			</item>
			<item>
				<title>Re:Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ [quote=baison]Kra, muito obrigado pela sua resposta, porem, nao consegui entender muito bem o que deve ser feito.<br /> <br /> Tem como você colocar um exemplo ?[/quote]<br /> <br /> O que o paulo disse é que pra fazer o que você quer tem que ser alguma coisa assim:<br /> <br /> [code]<br /> class A&lt;T extends Object&gt;<br /> {<br />   private T objeto;<br />   <br />   public A( Class&lt;T&gt; type ) throws Exception<br />   {<br />     this.objeto = type.newInstance();<br />   }<br /> }<br /> [/code]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/438902/reutilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/438902/reutilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Mon, 18 Feb 2008 22:33:30]]> GMT</pubDate>
				<author><![CDATA[ Mauricio Linhares]]></author>
			</item>
			<item>
				<title>Re:Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ [quote=Maurício Linhares]<br /> O que o paulo disse é que pra fazer o que você quer tem que ser alguma coisa assim:<br /> [/quote]<br /> <br /> Embora isso acabe com a segurança em tempo de compilação. Por exemplo, se você mudar o construtor, esse código só dará erro em Runtime.<br /> Isso também é  problemático se usa classe também precisar de generics.<br /> <br /> Infelizmente, generics não são os templates do C++. Se fossem, dava para fazer isso tranquilo.<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/438924/reutilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/438924/reutilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Mon, 18 Feb 2008 23:41:00]]> GMT</pubDate>
				<author><![CDATA[ ViniGodoy]]></author>
			</item>
			<item>
				<title>Re:Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ Pois é.. em C++ é trank.<br /> <br /> Mas blz.. vlw pelas respostas.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/438925/reutilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/438925/reutilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Mon, 18 Feb 2008 23:43:31]]> GMT</pubDate>
				<author><![CDATA[ baison]]></author>
			</item>
			<item>
				<title>Re:Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ [quote=ViniGodoy]Infelizmente, generics não são os templates do C++. Se fossem, dava para fazer isso tranquilo.[/quote]<br /> <br /> O que? Genéricos?<br /> <br /> Genéricos em Java não existem, isso é intriga da oposição  <img src="http://www.guj.com.br/images/smilies/97ada74b88049a6d50a6ed40898a03d7.gif" border="0"> <br /> <br /> É realmente uma pena que os genéricos do Java sejam são simplórios <img src="http://www.guj.com.br/images/smilies/9d71f0541cff0a302a0309c5079e8dee.gif" border="0">]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/438928/reutilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/438928/reutilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Mon, 18 Feb 2008 23:52:38]]> GMT</pubDate>
				<author><![CDATA[ Mauricio Linhares]]></author>
			</item>
			<item>
				<title>Re:Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ [quote=ViniGodoy]<br /> <br /> Embora isso acabe com a segurança em tempo de compilação. Por exemplo, se você mudar o construtor, esse código só dará erro em Runtime.<br /> <br /> [/quote]<br /> <br /> Se voce mudar o construtor, nao vai nem compilar... nao é tao ruim assim nao]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/438939/reutilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/438939/reutilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Tue, 19 Feb 2008 00:28:35]]> GMT</pubDate>
				<author><![CDATA[ Paulo Silveira]]></author>
			</item>
			<item>
				<title>Re:Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ [quote=Paulo Silveira]Se voce mudar o construtor, nao vai nem compilar... nao é tao ruim assim nao[/quote]<br /> <br /> Acho que o Viny se referiu ao contrutor de T Paulo, se você mudar ele (ou remover o construtor default) o código compila perfeitamente, mas vai lançar uma exeção em tempo de execução.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/438940/reutilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/438940/reutilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Tue, 19 Feb 2008 00:37:54]]> GMT</pubDate>
				<author><![CDATA[ Mauricio Linhares]]></author>
			</item>
			<item>
				<title>Re:Utilizando o Generics para instanciar objetos</title>
				<description><![CDATA[ [quote=Maurício Linhares][quote=Paulo Silveira]Se voce mudar o construtor, nao vai nem compilar... nao é tao ruim assim nao[/quote]<br /> <br /> Acho que o Viny se referiu ao contrutor de T Paulo, se você mudar ele (ou remover o construtor default) o código compila perfeitamente, mas vai lançar uma exeção em tempo de execução.[/quote]<br /> <br /> É isso mesmo. <br /> <br /> Usando reflexão, você abre mão da verificação do compilador. É uma desvantagem importante, que muita gente esquece de levar em conta na hora de dizer se vale ou não à pena usar o recurso.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/82372/439209/reutilizando-o-generics-para-instanciar-objetos
</guid>
				<link>http://www.guj.com.br/prepost/82372/439209/reutilizando-o-generics-para-instanciar-objetos
</link>
				<pubDate><![CDATA[Tue, 19 Feb 2008 13:04:48]]> GMT</pubDate>
				<author><![CDATA[ ViniGodoy]]></author>
			</item>
	</channel>
</rss>
