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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

java apt anno_Android Studio中使用apt

發(fā)布時(shí)間:2024/8/1 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java apt anno_Android Studio中使用apt 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、媒介

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

二、何為apt?

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

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

publicclass?MainActivity?extends?AppCompatActivity?{

@Override

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

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

}

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

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

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

【編輯推薦】Android安然防護(hù)之旅---應(yīng)用"反調(diào)試"操作的幾種籌劃解析

Android中導(dǎo)致內(nèi)存泄漏的竟然是它----Dialog

Android截屏與WebView長(zhǎng)圖分享經(jīng)驗(yàn)總結(jié)

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

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

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

(解釋原因:因?yàn)閍ndroid的module中不包含有apt相干類,是以須要新建一個(gè)java module來編寫apt邏輯。什么?你不信?不信你寫個(gè)類持續(xù)AbstractProcessor嘗嘗)

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

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

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

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

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

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

@Target(ElementType.METHOD)

public@interface?Test?{

String?value();

}

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

@Override

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

returnfalse;

}

}

3.既然說apt是要主動(dòng)生成java文件,那我們就須要擬構(gòu)出一個(gè)目標(biāo)類。

推薦閱讀

其實(shí)面對(duì)膳綾擎的反例場(chǎng)景可以應(yīng)用JDK1.5 java.util.concurrent.atomic中供給的原子包裝類型來包管原子性操作

概述1、不合適應(yīng)用volatile的場(chǎng)景(非原子性操作)Java說話中關(guān)鍵字 volatile 被>>>詳細(xì)閱讀

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

總結(jié)

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

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