java注释-库还是语言功能?

java注释-库还是语言功能?,java,annotations,Java,Annotations,Java注释应该被视为一种语言或库特性吗。我不是指注释的概念,它显然是一种语言特性,而是特定的注释,比如@Override和@Deprecated 显然,只有第三方库支持的注释(例如Hibernate注释)显然不是Java语言的一部分,但对于内置注释,我不太确定 如果这被认为过于散漫,请转到程序员那里。stackexchange.com注释(在Java中)用于向代码中添加元数据。注释是编写可读和可维护代码的方法。因此,无论注释是Java注释还是任何其他第三方,都要使用注释来编写好的代码 例如,要

Java注释应该被视为一种语言或库特性吗。我不是指注释的概念,它显然是一种语言特性,而是特定的注释,比如@Override和@Deprecated

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

如果这被认为过于散漫,请转到程序员那里。stackexchange.com

注释(在Java中)用于向代码中添加元数据。注释是编写可读和可维护代码的方法。因此,无论注释是Java注释还是任何其他第三方,都要使用注释来编写好的代码


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

以下是我的想法:

boolean isLanguageFeature(foo)
{
    return JLS.contains(foo)
}
JLS描述了Java编程语言。正如您清楚地理解的,注释的概念是一种语言特性。另一方面,JLS没有描述大量的标准Java库特性,例如集合API

发件人:

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


按照这些思路,我会说Java注释是一种库功能。

@Deprecated
@Override
这样的注释是库功能,语言工具碰巧使用它们来强制和/或描述代码行为。肯定是库功能。

我相信他的问题更多地与Java注释的性质有关,而不是它们是什么或何时应该使用。同意@tke。OP清楚地了解如何以及为什么使用注释。这个答案忽略了问题,并且完全无法得出任何结论。我同意你的观点,但你实际上没有提供任何支持论点。它们在标准Java库中。根据定义,它们是库功能。我想我并不觉得有必要支持这一点。支持参数:
@Override
可能是标准注释中最缺乏语言的。但是,如果您编写了一个完全忽略此注释的替代Java编译器,那么生成的代码的行为将与
javac
生成的代码完全相同。(假设它一开始是正确的。)注释可以改变代码行为的唯一方法是如果库(如Hibernate)使用字节码增强器处理它们。实际上重写函数(语言功能)并不需要
@Override
(库功能)这一事实使得它更像是一个(可选的)库功能。省略
@Override
不会在运行时传递不同的行为,只是在编译时(额外检查)和IDE中(警告)。请参阅@xdevs23。。。是的,我们就是这么说的。