【发布时间】:2009-04-20 01:08:09
【问题描述】:
@Deprecated public class Betamax { ... }
在上面的例子中,@Deprecated 有什么作用?它是纯粹的文档吗?或者它改变了编译器如何处理这个类?
【问题讨论】:
标签: java annotations
@Deprecated public class Betamax { ... }
在上面的例子中,@Deprecated 有什么作用?它是纯粹的文档吗?或者它改变了编译器如何处理这个类?
【问题讨论】:
标签: java annotations
编译器会强制执行(如在检查和 croaks 上)一些注解(如 @Override)。
但最有用的部分是库可以提供自己的注解(如@Entity 或@PersistenceAware),Java 语言(JDK 核心)对此一无所知。这有点像在语言中添加特定领域的语法糖。
@Deprecated 用于文档。当您使用不推荐使用的方法(或类)时,它还会创建编译器警告,就像旧的 JavaDoc @deprecated 标记一样。
【讨论】:
纯粹用于文档目的。
如果您将某些内容标记为已弃用,则您通过生成的 Javadoc 向用户指示不应使用此方法/类,例如
日期(整数年,整数月,整数日期): 已弃用。从 JDK 1.1 版开始, 替换为 Calendar.set(year + 1900, 月、日)或公历(年 + 1900,月份,日期)。
如果您将某项标记为已弃用,最好向用户说明他们应该使用什么来代替此方法。
【讨论】: