日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android APT】注解处理器 ( 配置注解依赖、支持的注解类型、Java 版本支持 )

發(fā)布時間:2025/6/17 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android APT】注解处理器 ( 配置注解依赖、支持的注解类型、Java 版本支持 ) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一、注解處理器 依賴 編譯時注解
  • 二、設置 注解處理器 支持的注解類型
  • 三、設置 注解處理器 支持的 Java 版本
  • 四、博客資源


Android APT 學習進階路徑 : 推薦按照順序閱讀 , 從零基礎到開發(fā)簡易 ButterKnife 注解框架的學習路徑 ;

  • 【Java 注解】注解簡介及作用
  • 【Java 注解】自定義注解 ( 注解屬性定義與賦值 )
  • 【Java 注解】自定義注解 ( 元注解 )
  • 【Java 注解】自定義注解 ( 注解解析 )
  • 【Java 注解】自定義注解 ( 使用注解實現(xiàn)簡單測試框架 )
  • 【Android APT】編譯時技術 ( ButterKnife 原理分析 )
  • 【Android APT】編譯時技術 ( 編譯時注解 和 注解處理器 依賴庫 )
  • 【Android APT】編譯時技術 ( 開發(fā)編譯時注解 )
  • 【Android APT】注解處理器 ( 注解標注 與 初始化方法 )

上一篇博客 【Android APT】注解處理器 ( 注解標注 與 初始化方法 ) 中 開始開發(fā) AbstractProcessor 注解處理器類 , 使用 com.google.auto.service:auto-service:1.0-rc4 Google 服務庫提供的 @AutoService(Processor.class) 注解標注該 注解處理器 類 , 簡單介紹了 init 方法 , 以及在該方法中獲取 Filer 和 Messager 工具類 ;





一、注解處理器 依賴 編譯時注解



注解處理器 需要處理 編譯時注解 , 因此必須能夠拿到 編譯時注解 的引用 , 注解處理器 Module 需要依賴 編譯時注解 Module ;

在 注解處理器 Module 的 build.gradle 的 dependencies 依賴中添加 implementation project(path: ':annotation') 依賴 ;


plugins {id 'java-library' }java {sourceCompatibility = JavaVersion.VERSION_1_7targetCompatibility = JavaVersion.VERSION_1_7 }dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation project(path: ':annotation')annotationProcessor 'com.google.auto.service:auto-service:1.0-rc4'compileOnly 'com.google.auto.service:auto-service:1.0-rc3' }



二、設置 注解處理器 支持的注解類型



注解處理器 抽象類 AbstractProcessor 中的 getSupportedAnnotationTypes 方法 , 用于聲明 注解處理器 要處理的注解類型 ;

@AutoService(Processor.class) public class Compiler extends AbstractProcessor {@Overridepublic Set<String> getSupportedAnnotationTypes() {return super.getSupportedAnnotationTypes();} }

該方法的返回值是 Set<String> , 因此可以設置多個處理的 注解類型 ;

在 getSupportedAnnotationTypes 方法中構造一個 Set<String> 集合 , 向其中放置要解析注解的全類名字符串 ;

@AutoService(Processor.class) public class Compiler extends AbstractProcessor {/*** 聲明 注解處理器 要處理的注解類型* @return*/@Overridepublic Set<String> getSupportedAnnotationTypes() {Set<String> supportedAnnotationTypes = new HashSet<String>();// 將 BindView 全類名 kim.hsl.annotation.BinndView 放到 Set 集合中supportedAnnotationTypes.add(BindView.class.getCanonicalName());return supportedAnnotationTypes;} }

設置 注解處理器 支持的注解類型 , 也可以使用 注解 的方式進行聲明 ;

使用 @SupportedAnnotationTypes 注解 , 也可以聲明 注解處理器 支持的注解類型 ;

@Documented @Target(TYPE) @Retention(RUNTIME) public @interface SupportedAnnotationTypes {/*** Returns the names of the supported annotation types.* @return the names of the supported annotation types*/String [] value(); }

注意 : 兩種方式二選一 , 不能同時存在 ;





三、設置 注解處理器 支持的 Java 版本



注解處理器 抽象類 AbstractProcessor 中的 getSupportedSourceVersion 方法 , 用于聲明 該注解處理器 支持的 Java 版本 ;

一般情況下要支持到最新的 Java 版本 ,

通過調用 ProcessingEnvironment 類的 getSourceVersion 方法 , 可以獲取最新的 Java 版本 ;

@AutoService(Processor.class) public class Compiler extends AbstractProcessor {/*** 聲明支持的 JDK 版本* @return*/@Overridepublic SourceVersion getSupportedSourceVersion() {// 通過 ProcessingEnvironment 類獲取最新的 Java 版本并返回return processingEnv.getSourceVersion();} }

設置 注解處理器 支持的 Java 語言版本 , 也可以使用 注解 的方式進行聲明 ;

使用 @SupportedSourceVersion 注解 , 也可以聲明 注解處理器 支持的 Java 語言版本 ;

@Documented @Target(TYPE) @Retention(RUNTIME) public @interface SupportedSourceVersion {/*** Returns the latest supported source version.* @return the latest supported source version*/SourceVersion value(); }

注意 : 兩種方式二選一 , 不能同時存在 ;





四、博客資源



博客源碼 :

  • GitHub : https://github.com/han1202012/APT

  • CSDN :

總結

以上是生活随笔為你收集整理的【Android APT】注解处理器 ( 配置注解依赖、支持的注解类型、Java 版本支持 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。