<android-apt学习笔记>

本文深入解析Java注解的使用方式及生命周期,涵盖@Target、@Retention等核心概念,并介绍了AutoService注解及其应用场景,同时提供了使用JavaPoet生成代码的具体实践。

参考文章

https://joyrun.github.io/2016/07/18/java-annotation/
https://joyrun.github.io/2016/07/19/AptHelloWorld/

正文

  • 注解:
    1.@Target : 规定Annotation所修饰的对象范围
    ElementType.TYPE:类、接口
    ElementType.CONSTRUCTOR:构造器声明
    ElementType.FIELD:成员变量、对象、属性(包括enum实例)
    ElementType.LOCAL_VARIABLE:局部变量声明
    ElementType.METHOD:方法声明
    ElementType.PACKAGE:包声明
    ElementType.PARAMETER:参数声明

    2.Retention:对Annotation的“生命周期”限制
    RetentionPolicy.SOURCE:在源文件中有效
    RetentionPolicy.CLASS:在class文件中有效
    RetentionPolicy.RUNTIME:在运行时有效 ,ps:可以通过反射,获取到该注解的属性值,从而去做一些运行时的逻辑处理

    3.Documented: 一个标记注解,没有成员

    4.Inherited: 阐述了某个被标注的类型是被继承的

  • demo练习
    https://joyrun.github.io/2016/07/19/AptHelloWorld/

涉及到的知识点:

  • AutoService:也是一个注解,官方翻译是:An annotation for service providers as described in {@link java.util.ServiceLoader}。主要的作用是注解 processor 类,并对其生成 META-INF 的配置信息。
  • JavaPoet:这个比较熟悉了,这个库的主要作用就是帮助我们通过类调用的形式来生成代码。https://github.com/square/javapoet
    ps:
    1.使用javaPeot有个技巧,其实就是把要输出的代码,先列出来,在按照javaPoet语法进行代码编写即可。javaPoet的链式调用非常方便阅读。
    2.按照,引用,类名,参数,方法名。倒着写,思路更清晰

ok,学着写,使用javapoet成功编译出代码。休息了,改天继续研究
https://github.com/cxMax/AndroidAPT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值