注解處理器Annotation Processor中判斷Java或kotlin類

在Android Studio中,項(xiàng)目編譯build之后kapt會(huì)在項(xiàng)目的build/tmp/kapt3/stubs目錄下會(huì)生成kotlin編寫的類的Java“存根類”裳瘪,在這些類的頂部我們可以看到有這樣一個(gè)注解@kotlin.Metadata(...)
@Metadata是 Kotlin 里比較特殊的一個(gè)注解侣姆。它記錄了 Kotlin 代碼元素的一些信息答姥,比如 class 的可見性莫鸭,function 的返回值,參數(shù)類型阱高,property 的 lateinit赚导,nullable 的屬性等等。這些 Metadata 的信息由 kotlinc 生成讨惩,最終會(huì)以注解的形式存于 .class 文件辟癌。
所以要在注解處理器判斷一個(gè)類是kotlin語言或者Java語言編寫的我們可以通過判斷該類是否有@Metadata注解來區(qū)分:

    /**
     * if true mean this class is java class
     */
    private fun isJavaFile(element: TypeElement): Boolean {
        val tmMetadata = mElements.getTypeElement("kotlin.Metadata").asType()
        return element.annotationMirrors.find { it.annotationType == tmMetadata } == null
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市荐捻,隨后出現(xiàn)的幾起案子黍少,更是在濱河造成了極大的恐慌,老刑警劉巖处面,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厂置,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡魂角,警方通過查閱死者的電腦和手機(jī)昵济,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來野揪,“玉大人访忿,你說我怎么就攤上這事箫爷〕占觯” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵踪少,是天一觀的道長(zhǎng)挣惰。 經(jīng)常有香客問我卧斟,道長(zhǎng)殴边,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任珍语,我火速辦了婚禮锤岸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘板乙。我一直安慰自己是偷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布募逞。 她就那樣靜靜地躺著晓猛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凡辱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天栗恩,我揣著相機(jī)與錄音透乾,去河邊找鬼。 笑死磕秤,一個(gè)胖子當(dāng)著我的面吹牛乳乌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播市咆,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼汉操,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了蒙兰?” 一聲冷哼從身側(cè)響起磷瘤,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搜变,沒想到半個(gè)月后采缚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挠他,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年扳抽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片殖侵。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贸呢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拢军,到底是詐尸還是另有隱情楞陷,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布朴沿,位于F島的核電站猜谚,受9級(jí)特大地震影響败砂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜魏铅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一昌犹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧览芳,春花似錦斜姥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至悟泵,卻和暖如春杈笔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背糕非。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工蒙具, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朽肥。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓禁筏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親衡招。 傳聞我的和親對(duì)象是個(gè)殘疾皇子篱昔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)始腾,斷路器州刽,智...
    卡卡羅2017閱讀 134,715評(píng)論 18 139
  • 從JDK1.5開始,Java引入了一種新的注釋機(jī)制-Annotation浪箭,中文名稱一般叫注解怀伦,它一般作為說明信息,...
    黑心石閱讀 14,550評(píng)論 1 3
  • 很多軟件公司山林,在遇到產(chǎn)品交付延期房待、開發(fā)周期長(zhǎng)、產(chǎn)品質(zhì)量低下驼抹、運(yùn)維成本高桑孩、響應(yīng)需求慢等等問題時(shí),會(huì)嘗試引入敏捷來改善...
    安曉輝0閱讀 1,861評(píng)論 0 1
  • 碎與巨大 2016年10月9日星期日 上班日 空調(diào)依然很冷框冀,依然忘記帶長(zhǎng)袖過來 從同事那邊借了件外套披了上來流椒,中午...
    千葉的時(shí)光收藏閱讀 178評(píng)論 0 1
  • 大家好,我是你們的新晉私人健身教練羅羅明也,抱著對(duì)未來的憧憬和美好生活的向往宣虾,一頭扎入了中國(guó)的健身行業(yè)惯裕。二十...
    私人教練羅羅閱讀 159評(píng)論 0 0