首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在java/android中'@‘是什么意思?

在java/android中'@‘是什么意思?
EN

Stack Overflow用户
提问于 2017-06-27 02:41:43
回答 2查看 262关注 0票数 0

刚开始学习android/java,我注意到代码中出现了很多'@‘。@Override我可以找到使用谷歌,但其余的是一个谜。例如,在使用ButterKnife库时,我们这样声明变量:

代码语言:javascript
运行
复制
@BindView(R.id.note1) TextView importantNote;

'@‘有什么特殊的功能吗,或者它只是方法BindView()名称的常规部分?因为我找不到任何关于“@”的具体内容,所以我想到了一个想法,它可能是某种约定。我说的对吗?

EN

回答 2

Stack Overflow用户

发布于 2017-06-27 02:46:02

@声明了一个注释。在编译代码时,注释处理器将扫描代码以查找这些注释,并可以根据需要生成代码(例如,BindView注释生成将视图绑定到变量所需的findViewById代码),或者生成额外的编译器指令(例如,Override确保变量实际上覆盖了某些内容,否则会出现编译器错误)。

有关如何创建自己的批注(以及批注处理器如何工作)的更多信息,请阅读此处:https://docs.oracle.com/javase/8/docs/api/javax/annotation/processing/Processor.html

票数 2
EN

Stack Overflow用户

发布于 2017-06-27 02:47:20

查看https://docs.oracle.com/javase/tutorial/java/annotations/

这些都是“注解”。

例如:

代码语言:javascript
运行
复制
@Override
protected void overridenMethod() {
}

注释可以有参数,如下所示:

代码语言:javascript
运行
复制
@SuppressWarnings("unused")

@BindView的例子是一个内联注释。内联批注非常少见,其他的内联批注示例都是非常特定的@SuppressLint批注。

您可以创建自己的注释,但是,如果您正在为编译器警告、错误等创建注释,在这种情况下,IDE必须检测该注释。例如,只有当集成开发环境支持注解时,SuppressLint才能工作,否则,注解不会有任何效果。

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

https://stackoverflow.com/questions/44766554

复制
相关文章

相似问题

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