Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java:调用接口类型意味着什么?_Java_Jls - Fatal编程技术网

java:调用接口类型意味着什么?

java:调用接口类型意味着什么?,java,jls,Java,Jls,我正在阅读java语言规范(JLS): 注释表示注释类型的特定调用 (§9.6) 在9.6中: 注释类型声明指定新的注释类型,即 特殊类型的接口类型 因此,例如@annotation1应该调用注释类型annotation1。我在这里找不到关于网络搜索或问题的信息。我所发现的只是接口方法的调用,而不是接口类型。我读过一些内置注释的原因,例如臭名昭著的@Override,然而,我希望通过JLS的链接清楚地了解什么是接口类型调用,因为我已经阅读了许多有用的框架都使用了注释,我希望有效地使用这些注释。如

我正在阅读java语言规范(JLS):

注释表示注释类型的特定调用 (§9.6)

在9.6中:

注释类型声明指定新的注释类型,即 特殊类型的接口类型


因此,例如
@annotation1
应该调用注释类型
annotation1
。我在这里找不到关于网络搜索或问题的信息。我所发现的只是接口方法的调用,而不是接口类型。我读过一些内置注释的原因,例如臭名昭著的
@Override
,然而,我希望通过JLS的链接清楚地了解什么是接口类型调用,因为我已经阅读了许多有用的框架都使用了注释,我希望有效地使用这些注释。

如果您编写
@SomeAnnotation
您基本上是在该注释类型的实例中创建的(可能有一些缓存,但我不知道这一点). 当注释包含数据时,这一点尤其明显,例如
@SomeAnnotation(name=“Alexei”)
。在这种情况下,您可以获取类型为
SomeAnnotation
的注释实例,然后对其调用
name()
,以获取值
“Alexei”

我读过很多有用的框架都使用注释,我想有效地使用它们

大多数框架使用反射检查类并收集注释信息,例如通过
Class.getAnnotation(SomeAnnotation.Class)
和许多其他类似方法。然后,这些信息被用于框架需要它们做的任何事情,例如,CDI将使用范围注释来构建其内部bean存储库

要使用这些框架,您不必知道它们如何使用注释的细节或调用的实际含义。只需按照框架的要求使用注释本身


如果您想开发自己的框架,那么您可能需要更多的信息,特别是关于反射功能的信息。

据我对您发布的链接JL的理解,注释类型是特殊的接口类型,您不应该认为在该上下文中的调用意味着与方法相同的调用。编译器插入带有代码的标记,它们可以在以后使用(或在编译期间使用
@override

JLS是一个完整的技术规范。它的大部分内容并不是集中在学习上,而是集中在一个完整的描述上。我建议从这开始。