@interface在Java中是关键字吗?
为什么所有其他注释都大写并在某处定义,而@interface却不是?这是否意味着它是一个关键词 @interface在Java中是关键字吗 不,根据@interface在Java中是关键字吗?,java,Java,为什么所有其他注释都大写并在某处定义,而@interface却不是?这是否意味着它是一个关键词 @interface在Java中是关键字吗 不,根据的说法,interface是一个关键字,但不是@interface 为什么所有其他注释都大写并在某处定义,而@interface却不是?这是否意味着它是一个关键词 : 注释类型声明指定一种新的注释类型,一种特殊的接口类型。为了将注释类型声明与普通的接口声明区分开来,关键字接口前面有一个at符号(@) 通常在@符号后大写字母,因为这是注释的名称。定义注
的说法,interface
是一个关键字,但不是@interface
为什么所有其他注释都大写并在某处定义,而@interface却不是?这是否意味着它是一个关键词
:
注释类型声明指定一种新的注释类型,一种特殊的接口类型。为了将注释类型声明与普通的接口声明区分开来,关键字接口前面有一个at符号(@)
通常在@
符号后大写字母,因为这是注释的名称。定义注释时,只需使用@接口
组合。这与类和其他接口(以及枚举)相同,关键字类
/接口
/枚举
为小写,但类型名称(应)以大写开头
public @interface MyAnnotation {...}
// ^lowercase ^uppercase
然后
@MyAnnotation
// ^uppercase
public class MyClass {...}
@interface在Java中是关键字吗
不完全是。关键字是接口
。在源代码中编写@interface
时,它相当于编写@interface
。(注意@
和界面
关键字之间的空格。)
这将在中解释,并附加说明:
请注意,at符号(@
)和关键字接口
是不同的标记。可以用空格分隔它们,但出于风格的考虑,不建议这样做
为什么
他们使用了@
接口
,因为注释是一种接口。联合联络小组是这样说的
至于为什么接口
而不是接口
,这是一种折衷:
- 一方面,
interface
在Java中是一个关键字,他们需要在该上下文中使用关键字而不是普通标识符
- 另一方面,
@interface
和常规注释之间存在明显的不一致性。。。其中Java风格规则规定注释标识符应以大写字母开头
- 另一方面,他们不可能使用
@annotation
或annotation
,因为annotation
没有保留,以便在Java还是一种年轻的语言时将来用作关键字
我想他们解决这个问题的办法是说,@interface
不是注释,因此与“其他”注释1不一致
然而,这只是猜测。设计决策实际做出时,我们不在场
1-有些人认为,由于@接口
“看起来像”一个注释,所以它就是一个注释。对于这些人来说,小写字母应该是一个语义线索,表明他们的心智模式不正确,并暗示他们应该查找和阅读JLS对此的说明。JLS不是特别容易阅读,但是如果你看PDF版本,它组织得很好,可以搜索。为什么很难,因为它取决于语言设计者的突发奇想。我猜:@interface
重用了已定义的关键字interface
,并且使用小写。其他注释以大写开头,因为它们基于类的概念,在Java中,按照惯例,类是大写的。例如,public@interface Override{}
@markspace注释是接口的一种类型(而不是类型的技术含义),这就是为什么它们使用相同的关键字。注释名称以大写开头,因为它是类型(类、接口、枚举、注释)的名称。@inteface
声明不是注释。“你通常在@符号后大写字母”,但你通常不大写关键字interface
@LewBloch。是的,我是这么说的。是的,除了调用@interface
一个“标识符”。实际上是两个令牌,它们都不是标识符。