前言
简单记录一下,编写编译时注解的几个步骤。
新建Java Module

引入auto-service(自动生成services下文件)和javapoet(生成java文件)
1 | compile 'com.google.auto.service:auto-service:1.0-rc2' |
编写注解
1 | @Target(ElementType.TYPE) |
创建AbstractProcessor实现类
重写getSupportedSourceVersion,getSupportedAnnotationTypes和process方法。注意在类上加入注解AutoService,便会自动生成META-INF下的services文件
1 | (Processor.class) |
实现process方法,根据注解生成对应代码
1 | public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { |
总结
编写的注解以及process的实现只是做个模板,具体情况视情况而定。
