java注释 - 库或语言功能?

时间:2011-09-16 00:07:25

标签: java annotations

Java注释是否应被视为语言或库功能。我不是指注释的概念,它显然是一种语言特征,而是特定的注释,如@Override和@Deprecated?

似乎更清楚的是,只有第三方库支持的注释(例如Hibernate注释)显然不是Java语言的一部分,但对于内置注释我不太确定。

如果这被认为过于话语,请随意转到programmers.stackexchange.com

3 个答案:

答案 0 :(得分:2)

以下是我对此的看法:

boolean isLanguageFeature(foo)
{
    return JLS.contains(foo)
}

JLS描述了Java 编程语言。正如您清楚地理解的那样,注释的概念是语言功能。另一方面,JLS没有描述大量标准Java库功能,例如Collections API。

来自JLS §9.6.1, Predefined Annotation Types

  

在Java平台的库中预定义了几种注释类型。其中一些预定义的注释类型具有特殊的语义。这些语义在本节中指定。本节未提供此处包含的预定义注释的完整规范;这是相应API规范的作用。这里只指定那些需要Java编译器或虚拟机特殊行为的语义。

根据这些思路,我会说Java注释是功能。

答案 1 :(得分:2)

@Deprecated@Override等注释是发生的库功能,供语言工具用来强制执行和/或描述代码行为。绝对是图书馆的特色。

答案 2 :(得分:-1)

使用注释(在Java中)将元数据添加到代码中。注释是编写可读和可维护代码的方法。因此,为了编写好的代码,使用注释天气它们是Java注释或任何其他第三方。

例如现在只需要添加@Stateless注释即可使EJB成为无状态。