Android 註解原理

2021-08-07 14:05:04 字數 1636 閱讀 8155

介紹一下注釋類內容:

註解的保留方式。如果注釋型別宣告中不存在 retention 注釋,則保留策略預設為retentionpolicy.class
retentionpolicy中的列舉常量簡介如下:

註解的作用範圍。如果注釋型別宣告中不存在 target 元注釋,則宣告的型別可以用在任一程式元素上。如果存在這樣的元注釋,則編譯器強制實施指定的使用限制。
此元注釋指示該宣告型別是其自身,即元注釋型別。它只能用在注釋型別宣告上:

@target(elementtype.annotation_type)

public @inte***ce metaannotationtype

此元注釋指示該宣告型別只可作為複雜注釋型別宣告中的成員型別使用。它不能直接用於注釋:

@target({}) 

public @inte***ce membertype

這是乙個編譯時錯誤,它表明乙個 elementtype 常量在 target 注釋中出現了不只一次。例如,以下元注釋是非法的:

@target()

public @inte***ce bogus

elementtype中的列舉常量簡介如下:

簡介暫時到這兒...
到了這裡我們還是先說說註解的雙面性吧,一種是低效能,一種是黑科技!

如 xutils , afinal 目前的注入使用的都是執行時註解,這是低效能的代表,當然還有一種黑科技,代表就是我們常用的butterknife ...

這裡我們先講一下簡單使用:

先建立乙個簡單的注釋類:
@target(elementtype.method)

@retention(retentionpolicy.runtime)

public @inte***ce

testannonation

然後我們簡單的使用它:
@testannonation(name = "this is my first comment" , id = 2017)

private

void

testanno()

通過下面的方法將這個註解列印出來:
private void outputannodetail(class clazz)

}}

結果如下:
my

first comment

id = 2017

這是乙個執行時註解,註解的作用就是標記乙個可以被識別的作用域,可以被其他地方獲取解釋或者被編譯機識別等作用。
下一邊部落格介紹編譯時註解,我們傳說中的黑科技…

Android 註解,注入框架

2.color red roboguice color 注入初始化控制項 url 3.android框架高階 00 thinkandroid註解機制 url 4.b color red butter knife color b url 注入框架 butter knife 4.0 發布,是乙個專注於 ...

Spring 註解 Autowired原理

在啟動spring ioc時,容器會自動裝載autowiredannotationbeanpostprocessor後置處理器 public class autowiredannotationbeanpostprocessor extends instantiationawarebeanpostpr...

Android中常見的註解

常見的幾個註解 1 targetapi 2 requiresapi 3 suppresslint 4 suppresswarnings 我們在開發android中常常會遇到 提示異常,使用快捷鍵操作後,開發工具會自動給我們的 新增一些註解,那麼你真的了解這些註解嗎?下面我們對每個註解的解釋 targ...