帮助入门Java注解的几篇英文文章

介绍

最近在研究注解方面的问题,主要是想利用注解完成自动生成代码的事情。为什么都是英文文章呢,主要还是中文文档的介绍基本都太轻描淡写了,或者是废话太多,还有很多过时了,总的来说对于要入门的人来说,都不怎么友好。

注解其实就是Java里面的一个标记,仅此而已,注解要发挥作用还在于如何运用这些标记。我们可以利用这个标记在运行时找到这个标记,然后在运行的时候利用反射做一些事情,但是更多的时候是在编译时利用注解处理器根据注解来做一些工作,比如生成代码,毕竟运行时的反射效率是很低的。

比较有名的几个Java库都使用了注解,如ButterKnife,retrofit,Dagger等,其中ButterKnife应该是研究注解使用的绝佳案例。

一个运行时注解

有人根据ButterKnife的代码写了一个运行时的注解(而ButterKnife是编译时),虽然不推荐使用运行时注解,但是这个例子对于理解注解本身有帮助,因为它非常简单,同时解决的是实际问题。其实编译时的注解也就多个注解处理器而已。

文章地址:http://blog.csdn.net/qq_23547831/article/details/51713824 

编译时注解的文章

应该讲用在Android中的注解绝大部分都是编译时的,因为性能是首要的。

下面是我搜集的一些文章:

Custom Annotations in Android 

如果一篇文章讲解注解而不讲如何自定义注解,那么你什么也学不到。这篇文章详细的讲解了如何自定义一个注解,以如何为一个类自动生成一个打印log的帮助类为例,涉及到注解的定义以及注解处理器,以及如何在注解处理器中生成代码(使用Square的JavaPoet,这基本是生成.java文件的标配),与很多文章不同的是这篇文章在注册自己定义的Processor的时候使用了 Google的 AutoService,这可以减少几步操作。

Annotation Processing : Don’t Repeat Yourself, Generate Your Code. 

这篇文章同样优秀,与上一篇文章可以互补,关键是文末给出了很多文章连接。不过作者应该漏掉了注册Processor的步骤。

Annotation Processing in Android Studio

这篇文章讲解了如何实现一个为POJO对象自动生成可序列化的方法。如何用原始的方法(不使用AutoService)注册Processor,在这篇文章里有说明。

在查找,注解方面的资料的时候,凡事看到有导入android-apt的步骤都可以不用管了,Android studio 2.2之后已经集成了。 

了解支持库中的注解

现在的Android支持库中自带了一些比较实用的注解,使用它们可以解决一些痛点。

Improve Your Android Coding Through Annotations 

这篇文章主要介绍了Android支持库中定义的几个常见注解,可以帮助你进一步理解注解的使用。