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

歡迎訪問 生活随笔!

生活随笔

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

Android

java apt anno_Android Studio中使用apt

發布時間:2024/8/1 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java apt anno_Android Studio中使用apt 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、媒介

你還在對著逝世板的反復代碼一味復制粘貼嗎?如許跟搬磚有何差別?你是否曾想過:你用代碼編寫出一個主動化的APP,但為何代碼本身卻缺乏了活力?控制Android-apt,杜絕反復代碼,讓你寫代碼如寫詩般優雅。

二、何為apt?

apt意為:annotation processing tool(注解處理對象),這家伙可神奇了,它能經由過程注解,在編譯期主動生成特定的Java文件,實現主動編寫代碼。

問:有什么竽暌姑?憑我本身本領能寫出來的代碼,為什么要主動化?@Test("abc")

publicclass?MainActivity?extends?AppCompatActivity?{

@Override

protected?void?onCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

}

大年夜哥,你這是又想發揮你的復制粘貼大年夜法了嗎?稍安勿躁,細看完這篇文┞仿,你會愛上這家伙的。

鼎鼎大年夜名的ButterKnife、Dagger2這兩個開源庫,信賴你必定有聽過,你應當知道我為什么提到它們了吧。沒錯!這兩個開源庫都是基于apt的。

三、說了這么多,要怎么竽暌姑啊?別急,我們先搭建情況(基于gradle插件2.2.0以上版本)

【編輯推薦】Android安然防護之旅---應用"反調試"操作的幾種籌劃解析

Android中導致內存泄漏的竟然是它----Dialog

Android截屏與WebView長圖分享經驗總結

17位谷歌Android開辟專家是若何對待Kotlin的?

經由過程微信Android和iOS版看兩大年夜體系差別【義務編輯:枯木 TEL:(010)68476606】

1.在android studio中新建一個Java module,用于存裝注解處理邏輯,名字隨便啦,反正我一般都取名:apt。很重要的事:在app module中添加注解處理依附:annotationProcessor project(‘:apt’)

(解釋原因:因為android的module中不包含有apt相干類,是以須要新建一個java module來編寫apt邏輯。什么?你不信?不信你寫個類持續AbstractProcessor嘗嘗)

2.再次新建一個module(android、java都可以),用于存裝注解,名字也隨便,反正我這里取名為:anno,并且在app、apt的build.gradle文件下,添加依附compile project(‘:anno’)

(為什么要新建module去盛裝注解類,而不放到app module或者apt module中去:最重要的原因就是app module與apt module不克不及直接互相依附,至于為什么不克不及直接依附,我就不細說了,總之一句話:不信你嘗嘗看就知道嘍!)

3.在apt的build.gradle里,添加如下依附。到此,我們的情況設備工作就告一段落了。

(個中:1.auto-service是用于注解后主動在特定路徑下生成設備文件;2.javapoet是用于合營apt便捷生成java文件的對象。信賴如許說來歲夜家還云里霧里,不要焦急,持續往下看)

四、情況搭建好了,接下來就是秀操作時光

1.起首,在anno module里新建一個注解類@Retention(RetentionPolicy.SOURCE)

@Target(ElementType.METHOD)

public@interface?Test?{

String?value();

}

2.在apt module里新建一個注解處理類,持續于AbstractProcessorpublicclass?TestProcessor?extends?AbstractProcessor{

@Override

publicboolean?process(Set?extends?TypeElement>?annotations,?RoundEnvironment?roundEnv)?{

returnfalse;

}

}

3.既然說apt是要主動生成java文件,那我們就須要擬構出一個目標類。

推薦閱讀

其實面對膳綾擎的反例場景可以應用JDK1.5 java.util.concurrent.atomic中供給的原子包裝類型來包管原子性操作

概述1、不合適應用volatile的場景(非原子性操作)Java說話中關鍵字 volatile 被>>>詳細閱讀

地址:http://www.17bianji.com/lsqh/35628.html

總結

以上是生活随笔為你收集整理的java apt anno_Android Studio中使用apt的全部內容,希望文章能夠幫你解決所遇到的問題。

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