Android注解处理
作为 Android 开发人员,您无疑已经看到了很多注释:它们是那些以@开头并且有时连接参数的奇怪代码组件。注释将元数据链接到其他代码组件,允许您在代码中包含额外信息。注释可用于使用注释处理基于该信息生成新的源文件。
在上面显示的示例图像中,“@”后跟单词,Override 实际上就是所谓的 Android Annotation。在本文中,我们将详细了解相同的内容。
概述
Android 开发中的几个知名库都使用了注释处理,包括 Picasso、Glide、PlaceHolderView 等。注释处理已经发展成为当前Java编程中最关键的语言特性之一。自Java 5 推出以来, Java就支持注释处理,尽管它的全部潜力直到最近才被实现。通俗地说,就是在编译过程中使用注解处理来生成文件。但在您深入注释之前,请注意以下事项:
GeekTip: Annotation processing may only be used to create new files and cannot be used to change existing ones. Annotation processing is used for many types of files, not just.java files.
注释究竟是如何生成文件的?
许多编译周期都花在注解处理上。在每个循环中,编译器读取一个Java源文件并在调用相关注解处理器之前查找已注册进行处理的注解。这个循环一直持续到产生一个文件,或者如果在那个循环中没有产生文件则结束。事不宜迟,让我们继续自己创建一个简单的注释!这听起来可能令人难以抗拒,但实际上很容易。
第 1 步:创建一个新模块
第一步是构建一个新模块来容纳您的注释。转到 Android Studio,然后单击File -> New -> New Module,然后选择 Kotlin ,然后,您需要像通常在您的 android 项目中一样为模块添加一个名称。
AdapterModel现在是一个普通的 Kotlin 类,但将其转换为注解类很简单。只需将 annotation 关键字放在类的前面。举个例子:
第 2 步:配置模块
- 将模块命名为gfg-annotations。
- 将包设置为com.geeksforgeeks.gfg_annotations。
- 将类名设置为AdapterModule 。
- 将语言设置为 kt 或Kotlin。
之后按“完成”以创建新的注释模块!
Note: AdapterModule is now a regular Kotlin class, but converting it to an annotation class is straightforward. Simply place the annotation keyword in front of the class. Like:
annotation class AdapterModule
第 3 步:向注释添加功能
即使您正在创建一个基本的注释,您也会情不自禁地在其上使用其他注释!两个常见的注释将用于注释您的注释类。第一个是创建一个如下面提到的值数据对象:
Kotlin
annotation class AdapterModule(val layoutId: Int)
第 4 步:添加另一个注释
只有一个注释不足以使模块值得使用,事实上,本文前一部分提到的所有现代库都使用了大约 100 种不同的注释来实现该功能。尽管注解的使用和消费问题庞大而复杂,但归根结底是事半功倍。也就是说,更少的代码(注释)神奇地转化为更大的功能,注释处理催化了这种计算炼金术。
不要担心代码的所有红线,它们只是作为警告而持久存在,因为模块没有发布适当的文档,向它们添加文档将删除它们,就像在 GitHub 上的 Android 项目中一样红线被删除。
该项目的最终版本可以通过点击这里下载。