2010-04-06 4 views
3

J'ai cherché sur le web et ce que j'ai découvert est ceci:Comment détecter les méthodes obsolètes dans un programme?

Pour le compilateur vous avertir des dont les détails les méthodes que vous avez utilisées que ont été l'utilisation dépréciée l'interrupteur javac.exe -deprecation . Ensuite, regardez dans le Javadoc pour les méthodes obsolètes à trouver les remplacements recommandés. Parfois, il suffit de renommer. Parfois, les remplacements fonctionnent assez différemment.

Mais je ne comprends pas vraiment comment cela fonctionne, quelqu'un peut-il m'aider avec ça?

Répondre

4

Méthode deprecation est fait pour avertir les programmeurs que la méthode est pas le meilleur à utiliser pour la fonctionnalité qui est souhaitée. C'est fait en utilisant l'annotation javadoc @deprecated. Lorsque vous utilisez l'indicateur -deprecated à javac, il suffit de dire javac pour déclencher un avertissement lorsqu'il voit ces annotations javadoc. Il vous indique le numéro de ligne où vous avez utilisé la méthode obsolète et le nom de la méthode obsolète. De là, c'est à vous de regarder le javadoc du JDK sur le site de Sun (Oracle ...) pour voir quelles sont les recommandations pour obtenir la fonctionnalité que vous désirez. Parfois, le remplacement consiste à effectuer plusieurs appels de méthode, alors que vous n'en auriez fait qu'un dans le passé. Habituellement, la documentation est bonne pour vous donner des exemples et vous indiquer la bonne direction lorsqu'il y a une nouvelle façon de faire les choses.

+0

L'indicateur '-deprecated' n'est pas valide et, lorsqu'il est utilisé, provoque une erreur fatale: un indicateur invalide: -deprecated'. Le drapeau correct serait '-deprecation' comme mentionné dans la question ci-dessus. Note: Je ne peux pas éditer la réponse car le delta est <6 caractères. – user667

0

Vous pouvez utiliser n'importe quel EDI comme Eclipse qui a l'option d'afficher les méthodes obsolètes lors de la programmation si vous avez joint le javadoc requis pour les classes que vous utilisez.

+2

Est-il possible de le trouver dans IDE comme Eclipse ou Netbeans par recherche sans avoir besoin de passer par un code? – MartinC

+0

http://stackoverflow.com/questions/233593/can-eclipse-be-used-to-find-all-deprecated-method-calls vérifier ceci. – Samurai

3

Pour trouver les méthodes et les classes obsolètes, faites ce que le texte cité indique. Vous compilez avec le commutateur "-deprecation" et les méthodes/classes incriminées seront affichées comme des messages d'avertissement de compilation. (Si vous utilisez un IDE, les avertissements de désapprobation seront activés/désactivés d'une autre manière.)

Si vous demandez réellement comment le compilateur sait qu'une méthode ou une classe est obsolète, la réponse est qu'une classe ou La méthode est marquée comme obsolète en ajoutant une balise "@deprecated" dans le commentaire javadoc correspondant. Le compilateur java note ceci, et définit un attribut dans le fichier bytecode quand il compile la classe. Ensuite, lorsque vous essayez d'utiliser la classe/méthode dans votre code, le compilateur java lit les bytecodes, note l'attribut et affiche le message d'avertissement.

Obsolescence est conçu comme une forte indication pour le développeur que la méthode ou la classe en question ne devraient plus être utilisés. Une classe ou une méthode obsolète comporte généralement des failles (majeures ou mineures) qui ne peuvent pas être corrigées sans casser le code existant. Au lieu de cela, un remplacement non compatible a été implémenté qui vous oblige à apporter des modifications à votre code source.

En théorie, les classes et les méthodes obsolètes peuvent être supprimées dans les versions ultérieures. Alors que Sun le fait rarement (voire jamais), les développeurs de bibliothèques tierces sont plus disposés à supprimer les méthodes obsolètes lors du nettoyage de leurs API.

0

Vous pouvez utiliser l'EDI NetBeans. Il montrera les méthodes obsolètes en frappant cette méthode et vous pouvez également voir la raison et les méthodes alternatives pour cela.

Questions connexes