J'aimerais qu'un mécanisme jette un avertissement de compilation manuellement. J'utilise cela pour signaler le code inachevé, donc je ne peux pas l'oublier plus tard. @Depecated est proche mais met en garde sur le site de l'appelant, pas sur le site de la création. J'utilise Eclipse. Quelque chose comme #warning en c #. P>
7 Réponses :
Pourquoi ne pas simplement ajouter un drapeau dans le code source comme Si vous avez des centaines de Todos dans votre projet de l'équipe, vous pouvez filtrer par une chaîne par exemple. vos initiales dans les menus en haut du volet de la tâche. P> // TODO: code> ou quelque chose? Et ensuite chercher toutes les occurrences de
toDO code> dans le fichier? Vous pouvez même avoir un drapeau spécial aussi comme
finiMe code> ou quelque chose. P>
Créer une annotation qui imprime un avertissement. P>
Quoi, comme une extension Eclipse? Cela ressemble à une énorme douleur
Voulez-vous dire émettre un avertissement à l'exécution?
-1 ... cette réponse à la question "Comment créer un mécanisme pour lancer des avertissements de compilation comme @depecated Annotation" est "Créer une annotation qui imprime l'avertissement" ne vous aide pas. Pourriez-vous écrire comment faire cela? ou fournir un lien?
Vous pouvez essayer de jeter une exception si une méthode inachevée est appelée (E.g.) (ou vous pouvez créer votre propre exception). Évidemment, cela ne fera qu'aider à l'exécution (sauf si vous faites une recherche ou quelque chose dans votre code pour cela - mais TODO serait une meilleure solution pour cela) p> et si vous utilisez Eclipse, vous pouvez marquer votre code inachevé. Avec // TODO et il apparaîtra sur votre liste de tâches (et la gouttière droite si vous l'avez configurée). Évidemment, les choses peuvent devenir très bruyantes si vous avez beaucoup de tags TODO. P> p>
Aucun bien, cela change la signature de la méthode en ajoutant une clause de lancers tout en augmentant la hiérarchie de l'héritage
@Dustin Getz: Utilisez simplement une sous-classe de RunTimeException ou d'erreur. Cela n'affecte pas la hiérarchie ou les appelants.
@Dustin aussi, non-supportéOperationException est une exception runtimédia
Je fais aussi cela, et la recherche du constructeur est facile dans la plupart des IDes.
Notre variation de l'approche d'exception comprend une référence à l'élément de travail connexe de notre système de suivi.
Je fais tout cela tout le temps en mettant simplement "*** laissé ici ***" ou d'autres. Comme ce n'est pas valide Java ou C ++ ou à peu près toute autre syntaxe de langue, le compilateur donne un message d'erreur pour celui-ci. P>
Bien sûr, cela donne une erreur et non un avertissement. Si vous souhaitez compiler autrement, je suppose que je suppose qu'une chose facile à faire serait de mettre une déclaration que vous savez générera un avertissement de compilateur avec un commentaire disant «terminer cela» ou autre. P>
Je ne suis pas sûr de savoir s'il y a quelque chose comme ça dans Java
mais voici quelque chose qui peut vous aider: P>
Compilez le code ci-dessous comme suit: P>
< Code> javac -xprint verbose.java code> p>
Lorsque je souhaite avertir les utilisateurs d'appeler une méthode, je (MIS) utilise l'annotation Build-in @depecated qui génère un avertissement au côté de l'appelant. En fait, il a une signification légèrement différente, mais je m'en fiche.
Beaucoup mieux que d'utiliser l'annotation obsolète à mon humble avis L'annotation Suppresswarnings. P>
peut être annoté presque partout et aussi longtemps que XXX n'est pas un avertissement valide, vous obtiendrez un avertissement d'Eclipse à ce sujet. P> @suppresswarnings ("xxx") code> p>
n'a pas fonctionné ici. Erreur: "Erreur de syntaxe sur jeton (s), construction (s) égarée (s)"
Utilisez-vous Eclipse? Vous pouvez utiliser // TODO dans des commentaires, ils apparaissent dans la vue Tâches.