首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java:调用接口类型意味着什么?

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

Stack Overflow用户
提问于 2019-08-27 15:28:32
回答 2查看 72关注 0票数 1

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

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

在9.6中:

注释类型声明指定了一种新的注释类型,一种特殊的接口类型。

因此,例如,@annotation1应该调用注释类型annotation1。我找不到信息,它意味着什么,通过网络搜索或问题在这里。我发现的只是接口方法的调用,而不是接口类型的调用。我已经阅读了一些内置注释所做的事情,例如臭名昭著的@Override,但是我想要清晰的知识--最好有指向JLS的链接--接口类型调用是什么,因为我已经阅读过注释被我想要高效使用的许多有用的框架所使用。

EN

回答 2

Stack Overflow用户

发布于 2019-08-27 15:40:00

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

我读过注释被许多有用的框架所使用,我想要高效地使用这些框架。

大多数框架使用反射来检查类并收集注释信息,例如通过Class.getAnnotation(SomeAnnotation.class)和其他许多类似的方法。然后,该信息将用于执行框架所需的任何操作,例如,CDI将使用范围注释来构建其内部bean存储库。

要使用这些框架,您不必知道它们是如何使用注释的,或者调用实际上意味着什么。只需按照框架要求您做的那样使用注释本身。

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

票数 2
EN

Stack Overflow用户

发布于 2019-08-27 15:56:07

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57678003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档