筆記-Android中的註解

我們在很多三方庫的源碼中都看到註解,註解它不能改變我們的代碼,但是註解提供了很多代碼外的額外信息,這片文章主要來總結下我們平時在Android開發中用到的一些註解:

一、java sdk中的註解

系統內置標準註解

Override

Override表示標註的方法已經重載了父類的方法。同時也起到了一個斷言的作用。比如我們寫了一個跟父類方法名稱一樣的方法時而沒有標註Override的時候,編譯器通常就會報錯。

Deprecated

Deprecated表示方法已經過時,根Override一樣也是一個標記型的註解。
當我們繼承或者實現的父類裏面的一個標註爲Deprecated的方法,雖然子類的方法中沒有標註Deprecated,但是編譯器仍然會警告。

SuppressWarning

SuppressWarning的作用:抑制編譯器產生警告信息。
@SuppressWarnings(“unchecked”) 抑制單類型的警告
@SuppressWarnings(value={“unchecked”, “rawtypes”}) 抑制多類型的警告
@SuppressWarnings(“all”)抑制所有警告

元註解

@Target

@Target說明了Annotation所修飾的對象範圍:Annotation可被用於 packages、types(類、接口、枚舉、Annotation類型)、類型成員(方法、構造方法、成員變量、枚舉值)、方法參數和本地變量(如循環變量、catch參數)。在Annotation類型的聲明中使用了target可更加明晰其修飾的目標。
作用:用於描述註解的使用範圍(即:被描述的註解可以用在什麼地方)
取值(ElementType)有:
1.CONSTRUCTOR:用於描述構造器
2.FIELD:用於描述域
3.LOCAL_VARIABLE:用於描述局部變量
4.METHOD:用於描述方法
5.PACKAGE:用於描述包
6.PARAMETER:用於描述參數
7.TYPE:用於描述類、接口(包括註解類型) 或enum聲明

@Documentation

用來描述其他類型的一些註解應該作爲共有程序的api

@Rentension

Retention(保留)註解說明,這種類型的註解會被保留到那個階段. 有三個值:
1.RetentionPolicy.SOURCE —— 這種類型的Annotations只在源代碼級別保留,編譯時就會被忽略
2.RetentionPolicy.CLASS —— 這種類型的Annotations編譯時被保留,在class文件中存在,但JVM將會忽略
3.RetentionPolicy.RUNTIME —— 這種類型的Annotations將被JVM保留,所以他們能在運行時被JVM或其他使用反射機制的代碼所讀取和使用.

@Inherited

它指明被註解的類會自動繼承

二、Android Support Annotation中的註解

以下註解只有在android.support.annotation包當中

@Nullness

@Notnull表示函數的返回不可以爲null
@Nullable 表示函數的參數或者返回可以爲null
如果我們編寫了一個方法,它有可能是會返回null的,這時候方法上面又有@Nullable的註解,那麼這個時候編譯器提示我們warning。

@ResouceType

定義傳入的資源id的類型。比如通常用@StringRes要求傳入的int類型的資源id是一個字符牀的資源。

@Threading

指定耗時操作時在哪個線程中進行的。

@CallSuper

指定方法在調用的同時去調用父類的方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章