刚开始学习android/java,我注意到代码中出现了很多'@‘。@Override
我可以找到使用谷歌,但其余的是一个谜。例如,在使用ButterKnife库时,我们这样声明变量:
@BindView(R.id.note1) TextView importantNote;
'@‘有什么特殊的功能吗,或者它只是方法BindView()名称的常规部分?因为我找不到任何关于“@”的具体内容,所以我想到了一个想法,它可能是某种约定。我说的对吗?
发布于 2017-06-27 02:46:02
@声明了一个注释。在编译代码时,注释处理器将扫描代码以查找这些注释,并可以根据需要生成代码(例如,BindView注释生成将视图绑定到变量所需的findViewById代码),或者生成额外的编译器指令(例如,Override确保变量实际上覆盖了某些内容,否则会出现编译器错误)。
有关如何创建自己的批注(以及批注处理器如何工作)的更多信息,请阅读此处:https://docs.oracle.com/javase/8/docs/api/javax/annotation/processing/Processor.html
发布于 2017-06-27 02:47:20
查看https://docs.oracle.com/javase/tutorial/java/annotations/
这些都是“注解”。
例如:
@Override
protected void overridenMethod() {
}
注释可以有参数,如下所示:
@SuppressWarnings("unused")
@BindView
的例子是一个内联注释。内联批注非常少见,其他的内联批注示例都是非常特定的@SuppressLint
批注。
您可以创建自己的注释,但是,如果您正在为编译器警告、错误等创建注释,在这种情况下,IDE必须检测该注释。例如,只有当集成开发环境支持注解时,SuppressLint
才能工作,否则,注解不会有任何效果。
https://stackoverflow.com/questions/44766554
复制相似问题