注解開發(fā)-自定義EventBus之路

知其然跪求知其所以然,今天我們講一下注解開發(fā)-如何實(shí)現(xiàn)一個low版本的事件總線胆屿。
現(xiàn)在androd開發(fā)會用框架可以說是最基本的入門了旁壮。比如Retrofit2,EventBus侈贷,路由框架ARouter等惩歉,是不是想學(xué)習(xí)追一下源碼發(fā)現(xiàn)看不懂了?哈哈俏蛮,因?yàn)闆]看懂注解啊...
java 1.5開始引入了注解和反射撑蚌,正確的來說注解是反射的一部分,沒有反射搏屑,注解無法正常使用争涌,但離開注解,反射依舊可以使用辣恋,因此來說亮垫,反射的定義應(yīng)該包含注解才合理一些。
我們學(xué)了注解能干點(diǎn)啥伟骨?其實(shí)學(xué)會了注解開發(fā)饮潦,第一可以解決一些開發(fā)問題,第二呢可以裝XX携狭,裝XX,裝XX
(重要的事情說三遍)继蜡。

按照來源可以分為JDK的,三方的(我們常用的框架)逛腿,自己寫的自定義注解(我們要學(xué)的)
注解按照運(yùn)行機(jī)制分呢 稀并,可以分為 源碼注解,編譯時期注解(ARouter)单默,運(yùn)行時期注解(EventBus)稻轨。
源碼注解就在源碼存在,編譯成class文件就木了雕凹,編譯時期的注解源碼和運(yùn)行的時候都存在不消失,運(yùn)行時注解可以發(fā)揮作用政冻,甚至可以控制邏輯枚抵,比如我們的事件總線。
Java給我們帶了哪些注解呢明场?
最常見的幾個

@Override

這個最常見汽摹,覆蓋父類方法就會提示這個


@Override
@Deprecated
@Deprecated

被警告了

過時注解

@SuppressWarnings("xxx")

壓制警告作用
我們發(fā)現(xiàn)上面提示我們方法已經(jīng)過期了,看著不爽咋辦苦锨,壓制它1破E棵凇!


壓制了所有的警告拉庶,但不建議

壓制的關(guān)鍵字和作用

感謝分享嗜憔,相關(guān)鏈接可以點(diǎn)擊
https://www.cnblogs.com/fsjohnhuang/p/4040785.html

這是我們在寫代碼時候常見的,但是和我們想的自定義注解好像沒啥關(guān)系氏仗,下面開啟學(xué)習(xí)自定義之路
想自定義注解吉捶,我們先學(xué)習(xí)下源注解

源注解是啥子?xùn)|東?

這玩意其實(shí)就是為了編寫自定義注解而生的(哈哈)
先講下源注解有哪些

@Target 表示該注解可以用于什么地方皆尔,可以共存

可能的ElementType參數(shù)有:
CONSTRUCTOR:構(gòu)造器的聲明
FIELD:域聲明(包括enum實(shí)例)
LOCAL_VARIABLE:局部變量聲明
METHOD:方法聲明
PACKAGE:包聲明
PARAMETER:參數(shù)聲明
TYPE:類呐舔、接口(包括注解類型)或enum聲明

@Retention 表示需要在什么級別保存該注解信息。

可選的RetentionPolicy參數(shù)包括:
SOURCE:注解將被編譯器丟棄
CLASS:注解在class文件中可用慷蠕,但會被VM丟棄
RUNTIME:VM將在運(yùn)行期間保留注解珊拼,因此可以通過反射機(jī)制讀取注解的信息。

@Document 常用于文檔編寫

將注解包含在Javadoc中

@Inherited 只能繼承類上(@interface的繼承不了)的注解流炕,方法注解繼承不到哦

允許子類繼承父類中的注解

接下來我們寫一個自定義注解展示一下

為了裝XX澎现,我們模仿下EventBus



enum

我們使用@interface表示這是一個注解,里面參數(shù)的類型有哪些呢浪感?
原始基本類型昔头,String,Class,Annotation(注解),Enumeration(枚舉) 其實(shí)我們一般也就常用基本類型和字符串就最夠用了影兽,像List,Map這種就會報錯的



我們編寫好了揭斧,在頁面里使用一下,可以用了



我們該怎么使用注解呢峻堰?其實(shí)我們需要拿到注解方法上面的參數(shù)讹开,才能進(jìn)行下一步,
第一步我們先拿到當(dāng)前類捐名,遍歷類里的方法旦万,查找上面是否有我們的注解

運(yùn)行一下試試卓起,我們獲取到了注解的參數(shù)值嘱兼,是不是瞬間覺得美滋滋了


我們獲取到了值

我們是不是要裝個XX,開啟我們的EventBus編碼之旅哆档?當(dāng)然正經(jīng)EventBus有黏性發(fā)送贺归,異步運(yùn)行啥的淆两,我們先就先玩?zhèn)€LOW版本的,發(fā)送消息能接收就行

注解開發(fā)-自定義EventBus之路02鏈接
http://www.reibang.com/p/cb75cb815e53

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拂酣,一起剝皮案震驚了整個濱河市秋冰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌婶熬,老刑警劉巖剑勾,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埃撵,死亡現(xiàn)場離奇詭異,居然都是意外死亡虽另,警方通過查閱死者的電腦和手機(jī)暂刘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洲赵,“玉大人鸳惯,你說我怎么就攤上這事〉迹” “怎么了芝发?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長苛谷。 經(jīng)常有香客問我辅鲸,道長,這世上最難降的妖魔是什么腹殿? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任独悴,我火速辦了婚禮,結(jié)果婚禮上锣尉,老公的妹妹穿的比我還像新娘刻炒。我一直安慰自己,他們只是感情好自沧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布坟奥。 她就那樣靜靜地躺著,像睡著了一般拇厢。 火紅的嫁衣襯著肌膚如雪爱谁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天孝偎,我揣著相機(jī)與錄音访敌,去河邊找鬼。 笑死衣盾,一個胖子當(dāng)著我的面吹牛寺旺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播势决,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼迅涮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了徽龟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤唉地,失蹤者是張志新(化名)和其女友劉穎据悔,沒想到半個月后传透,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡极颓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年朱盐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菠隆。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡兵琳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骇径,到底是詐尸還是另有隱情躯肌,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布破衔,位于F島的核電站清女,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晰筛。R本人自食惡果不足惜嫡丙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望读第。 院中可真熱鬧曙博,春花似錦、人聲如沸怜瞒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盼砍。三九已至尘吗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浇坐,已是汗流浹背睬捶。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留近刘,地道東北人擒贸。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像觉渴,于是被迫代替她去往敵國和親介劫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,262評論 25 707
  • 用兩張圖告訴你案淋,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料座韵? 從這篇文章中你...
    hw1212閱讀 12,744評論 2 59
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器誉碴,智...
    卡卡羅2017閱讀 134,693評論 18 139
  • 未來宦棺,不是窮人的天下,也不是富人的天下黔帕,而是一群志同道合代咸,敢為人先,正直成黄,正念呐芥,正能量人的天下。真正的危機(jī)奋岁,不是金...
    杏郁閱讀 128評論 0 0