java.lang.Deprectated是J2SE 5.0中标准的Annotation型态之一,它对编译器说明某个方法已经不建议使用,如果有人试图使用或重新定义该方法,必须提出警示讯息。
举个例子来说,您可能定义一个CustomObject类别,并在当中定义有getSomething()方法,而在一段时间之后,您不建议使用这个方法 了,并要将这个方法标示为deprectated,您可以这么作:
public class CustomObject { @Deprecated public String getSomething() { return "something"; } }
如果有人试图在继承这个类别后重新定义getSomething(),或是在程序中呼叫使用getSomething()方法,则进行编译时,就会出现这 个警讯:
Note: SubCustomObject.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details.
想要知道详细的警讯内容的话,可以在编译时加上-Xline:deprecation自变量,例如:
>javac -Xlint:deprecation SubCustomObject.java SubCustomObject.java:5: warning: [deprecation] getSomething() in CustomObject ha s been deprecated object.getSomething(); ^ 1 warning
java.lang.Deprecated是个Marker annotation,简单的说就是用于标示,annotation名称本身即包括了要给工具程序的信息。