<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Sobre deprecated"]]></title>
		<link>http://www.guj.com.br/posts/list/5.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Sobre deprecated"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Sobre deprecated</title>
				<description><![CDATA[ Olá:<br /> <br /> Quando quero declarar um método como deprecated tenho que fazer algo como:<br /> [code]<br /> /**<br /> * @deprecated Faca outra coisa<br /> */<br /> public void metodoDepreciado&#40;&#41; &#123; ... &#125;<br /> [/code]<br /> Assim, para verificar se um determinado método está depreciado o compilador verifica se dentro do comentário javadoc existe a String "@deprecated". Ora, Comentários foram feitos justamente para serem ignorados pelo compilador  :? ! Isso inclui os comentários javadocs. <br /> Creio que isso foi uma bola fora dos criadores do Java. Na minha humilde opinião seria mais adequado se "deprecated" fosse uma palavra-chave, usada como abaixo:<br /> [code]<br /> public void metodoDepreciado&#40;&#41; deprecated&#40;&quot;Faça outa coisa&quot;&#41; &#123; ... &#125;<br /> [/code]<br /> Será que não há algum expert do JCP que não tenha pensado nisso? Qual a opinião de vocês?<br /> <br /> Grato,]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8425/sobre-deprecated
</guid>
				<link>http://www.guj.com.br/prepost/1772/8425/sobre-deprecated
</link>
				<pubDate><![CDATA[Fri, 28 Feb 2003 11:11:37]]> GMT</pubDate>
				<author><![CDATA[ Rafael Afonso]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Ha 2 problemas em fazer o que voce sugeriu:<br /> <br /> 1) Seria necessario fazer alteracao no codigo fonte, o que certamente nao eh a melhor coisa;<br /> 2) usar @deprecated faz com que isso tambem apareca na documentacao da classe. Se fosse da outra maneira, ou nao apareceria na documentacao, ou vc teria que adicionar o comentario MAIS a alteracao no codigo.. nao eh algo mto bom de fazer.<br /> <br /> Como voce disse, comentarios sao ignorados, porem nesse caso ate eh uma solucao bem razoavel, e soh facilita a vida do programador. <br /> <br /> Rafael]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8440/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8440/
</link>
				<pubDate><![CDATA[Fri, 28 Feb 2003 13:37:50]]> GMT</pubDate>
				<author><![CDATA[ Rafael Steil]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ [quote]1) Seria necessario fazer alteracao no codigo fonte, o que certamente nao eh a melhor coisa; [/quote]<br /> Quando abro um código fonte e acrescento a tag @deprecated, estou alterando o código de qualquer forma.  Se bem que não na parte "funcional".<br /> [quote]2) usar @deprecated faz com que isso tambem apareca na documentacao da classe. Se fosse da outra maneira, ou nao apareceria na documentacao, ou vc teria que adicionar o comentario MAIS a alteracao no codigo.. nao eh algo mto bom de fazer. [/quote]<br /> Basta alterara o programa gerador do Javadoc para que ele reconheça [i]deprecated[/i] e exiba o aviso de depreciação. Se o Javadoc é inteligente o suficiente para verificar se um determinado método está sobrepondo outro método de mesma assinatura de alguma super-classe, não deve ser difícil ele tratar de [i]deprecated[/i]. <br /> Reconheço que este assunto é um tanto acadêmico, e que provavelmente não vai resultar em nada. Apenas acho que se pudesse retornar no tempo e recriar o Java, este seria um aspecto que eu levaria em consideração.<br /> <br /> Grato,]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8442/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8442/
</link>
				<pubDate><![CDATA[Fri, 28 Feb 2003 13:51:54]]> GMT</pubDate>
				<author><![CDATA[ Rafael Afonso]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Eu realmente me referia a parte funcional. E isso eh um problema. <br /> A solucao que voce propoe eh muito mais sucetivel a erros. Depois, o programa que cria o Javadoc nao tem influencia alguma na hora de compilacao, logo ele nao pode "tratar deprecated". <br /> <br /> Rafael]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8444/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8444/
</link>
				<pubDate><![CDATA[Fri, 28 Feb 2003 14:04:17]]> GMT</pubDate>
				<author><![CDATA[ Rafael Steil]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ [quote]Depois, o programa que cria o Javadoc nao tem influencia alguma na hora de compilacao, logo ele nao pode "tratar deprecated". [/quote]<br /> Sim, o gerador do Javadoc não influencia a compilação. Mas se ele pode, digamos, dizer se um método é public, abstract, syncronized, etc. simplesmente procurando por estas palavras no cabeçalho deste método, a mesma coisa poderia ser feita com a depreciação.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8447/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8447/
</link>
				<pubDate><![CDATA[Fri, 28 Feb 2003 15:20:58]]> GMT</pubDate>
				<author><![CDATA[ Rafael Afonso]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Concordo,<br /> <br /> eu diria que seria melhor algo como <br /> <br /> public deprecated void theMethod...<br /> <br /> []'s]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8524/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8524/
</link>
				<pubDate><![CDATA[Tue, 4 Mar 2003 10:38:43]]> GMT</pubDate>
				<author><![CDATA[ mlopes]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Rafael:<br /> Me perdoe a curiosidade....mas qual o motivo que leva vc a declarar um método como depreciado? pelo que sei, quando vc usa métodos de API's antigas do Java, ao compilar ele diz que existe metodos depreciados em sua classe, dai vc da -deprecated, algo assim, na hora de compilar e ele mostra, correto? então, pedindo desculpas novamente pela curiosidade, mas o que leva vc a querer declarar algo deste tipo??<br /> <br /> Ate mais.....]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8554/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8554/
</link>
				<pubDate><![CDATA[Wed, 5 Mar 2003 01:21:25]]> GMT</pubDate>
				<author><![CDATA[ richardpeder]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Bom, não sei o caso específico do Rafael Afonso, mas o motivo que leva alguém a declarar algo como deprecated é o mesmo que leva as pessoas que mantém a API do Java a fazerem isso.<br /> <br /> Você fez seu método em uma classe, está todo mundo usando, e um certo dia você percebe que estava meio ruim daquele jeito, mas que se você simplesmente "consertar", o código de outras pessoas pode parar de agir como esperado. Então você marca o método como deprecated e faz um novo para substituí-lo, aí as pessoas que pegarem a nova versão da sua classe e estiverem usando esse método serão informadas sobre a mudança.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8556/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8556/
</link>
				<pubDate><![CDATA[Wed, 5 Mar 2003 02:51:25]]> GMT</pubDate>
				<author><![CDATA[ Bani]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Bani:<br /> <br /> Acho que vc esta querendo falar em "versionamento de métodos" não eh? bom, se caso for isso, com certeza eh muito interessante, pois sempre vc faz um metodo e ele tem erros, dai vc vai la, faz uma atualização dele e marca a anterior como deprecated.....massa!! <img src="http://www.guj.com.br/images/smilies/97ada74b88049a6d50a6ed40898a03d7.gif" border="0"> <br /> <br /> <br /> Obrigado e ate mais....]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8589/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8589/
</link>
				<pubDate><![CDATA[Thu, 6 Mar 2003 00:21:51]]> GMT</pubDate>
				<author><![CDATA[ richardpeder]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ É por aí, mas o ideal é sempre tentar corrigir seu próprio método se isso não for impactar ninguém.<br /> O deprecated é só para quando realmente a mudança é meio "radical" e aí precisa fazer um novo.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8602/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8602/
</link>
				<pubDate><![CDATA[Thu, 6 Mar 2003 08:02:21]]> GMT</pubDate>
				<author><![CDATA[ Bani]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Richardpeder:<br /> <br /> Quanto os motivo para declarar um metodo deprecated, a Bani respondeu por mim.<br /> <br /> [quote="richardpeder"]Rafael:<br /> Me perdoe a curiosidade....mas qual o motivo que leva vc a declarar um método como depreciado? pelo que sei, quando vc usa métodos de API's antigas do Java, ao compilar ele diz que existe metodos depreciados em sua classe, dai vc da -deprecated, algo assim, na hora de compilar e ele mostra, correto? então, pedindo desculpas novamente pela curiosidade, mas o que leva vc a querer declarar algo deste tipo??<br /> <br /> Ate mais.....[/quote]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8618/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8618/
</link>
				<pubDate><![CDATA[Thu, 6 Mar 2003 09:33:50]]> GMT</pubDate>
				<author><![CDATA[ Rafael Afonso]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Não se marca como deprecated uma versão de um método.<br /> <br /> Você marca o método inteiro. E depois não tem mais volta, a menos que vc queira uma bagunça. <br /> Um método é deprecated quando ele provavelmente será removido da API.<br /> <br /> Quando vc faz código para outras pessoas usarem, às vezes vc se depara com essas coisas: erros graves em situações específicas, ou comportamentos que não existem mais.<br /> <br /> Por exemplo:<br /> [code]<br />   Tag tag = new Tag&#40;&#41;;<br />   tag.setType&#40;Tag.TITLE_TYPE&#41;;<br /> [/code]<br /> <br /> Vc tem uma constante inteira que te permite setar o tipo da tag. Mas vc de repente percebe que essa abordagem é horrível e resolve criar uma classe [b]TagType[/b] que vai fazer a tarefa difícil para você:<br /> <br /> [code]<br />   Tag tag = new Tag&#40;&#41;;<br />   TagType title = new TagType&#40;&#41;;<br />    title.setBold&#40;true&#41;;<br />    title.setBig&#40;true&#41;;<br />    tag.setType&#40;title&#41;;<br /> [/code]<br /> <br /> E agora?? Vc quer que todo mundo use o jeito novo, mas existe código de outros que chama seu método inteiro! Vc torna-o deprecado e faz uma gambiarra para que uma chamada ao método antigo ainda funcione. Mas ele eventualmente vai sumir.<br /> <br /> Repare na classe [b]java.util.Date[/b], que é um caso clássico... :)<br /> <br /> aquelão!!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1772/8675/
</guid>
				<link>http://www.guj.com.br/prepost/1772/8675/
</link>
				<pubDate><![CDATA[Thu, 6 Mar 2003 19:23:14]]> GMT</pubDate>
				<author><![CDATA[ dukejeffrie]]></author>
			</item>
	</channel>
</rss>
