2013-12-19 9 views
21

Ich bin in der Lage, eine Funktion oder Klasse @Deprecated Annotation abzulehnen. Aber ein @ deprecated Eintrag im XML-Kommentar selbst markiert die Klasse/Funktion als veraltet. Ist @deprecated tatsächlich die Klasse/Funktion veraltet?@deprecated vs @Deprecated

+0

Meinst du den Javadoc Kommentar? Nach welchem ​​XML-Kommentar fragen Sie? –

+0

@EliottFrisch, Ja, es ist. Ich bin ein C# -Entwickler, ich habe es aus meiner Sicht gesagt. Javadoc ist der Begriff in Java. –

+0

@Bohemian, lesen Sie bitte die Antworten auf Fragen, die Sie als Original markiert haben. Sie alle erzwingen, entweder nur @@ Veraltet oder beides zu verwenden. Nicht nur @@ veraltet –

Antwort

46

@Deprecated ist eine Anmerkung, die vom Compiler gelesen wird, verwendet, um ein Verfahren zur Markierung als veraltet zu der Compiler und generiert eine Warnung zur Kompilierungszeit, wenn die Methode verwendet wird.

@deprecated ist ein Javadoc-Tag, das verwendet wird, um Dokumentation über die Veraltetheit bereitzustellen. Sie können damit erklären, warum die Methode veraltet war, und eine Alternative vorschlagen. Es ist nur sinnvoll, dieses Tag in Verbindung mit der @Deprecated-Annotation zu verwenden.

Beispiel Nutzung:

/** 
* This method does ... 
* @deprecated As of <product> <version>, because ... use 
*    {@link #replacementMethod()} instead. 
*/ 
@Deprecated 
public void deprecatedMethod() { 
    // ... 
} 

Hier ist ein guide on deprecation, überprüfen Sie es für weitere Informationen.


Um Ihre Frage genauer zu beantworten, sollten Sie entweder @Deprecated oder beides verwenden, weil es keinen Sinn macht, dass Sie diese Informationen in der Dokumentation zu beschränken wollen würde, während er vom Compiler Quellen. @Deprecated markiert Ihre Methode als veraltet für jedes Tool, das sich darum kümmert (z. B. IDEs), da es zur Laufzeit und zur Kompilierungszeit verfügbar ist. Darüber hinaus notiert das Tool javadoc @Deprecated, auch wenn Sie keine Informationen zur Verschrottung mithilfe von @deprecated hinzugefügt haben.

Lediglich die Dokumentation Ihrer Methoden als veraltet, statt sie zu kommentieren, bedeutet, dass Benutzer manuell nach Verwendungen suchen müssen, anstatt Tools wie den Compiler oder ihre eigenen Tools zu verwenden.

+1

Der Link "Guide on deprecation" ist nicht mehr aktiv. Ich schlage vor, Sie reparieren es. danke – gersonZaragocin

+0

@gersonZaragocin danke, ich habe den Link aktualisiert. :) –

+0

Sie könnten sagen, der Link war ... veraltet! : D Wie auch immer, weiß jemand, warum Eclipse durchschaltet und markiert die Aufrufe einer '@ deprecated' Methode, aber nicht einer' @ Deprecated' Methode? Ich würde es andersherum erwarten oder für beide markiert. Es zeigt mir auch keine Warnung für die Verwendung von beiden, aber das könnte an meiner Einstellung liegen. – Fabian

14

@deprecated Javadoc Tag: Sie können die @deprecated-Tag verwenden, um Javadoc zeigen ein Programmelement zu machen als veraltet. Auf das @ deprecated-Tag muss ein Leerzeichen oder eine neue Zeile folgen.

@deprecated Mit der @deprecated Annotation eine Klasse, Methode oder Feld deprecate stellt sicher, dass alle Compiler Warnungen ausgeben, wenn Code, Programmelement verwendet. Im Gegensatz dazu gibt es keine Garantie, dass alle Compiler immer Warnungen ausgeben, basierend auf dem @deprecated Javadoc-Tag

siehe here

+0

Vielen Dank für den Link zur Dokumentation! –

+0

Schöne Antwort Nambi :) –

Verwandte Themen