android注解:
通過android.support.annotation
庫:
- NonNull不為空:
成員變量、局部變量陋桂、參數(shù)、方法返回
@NonNull //控制結(jié)果
public View xxx(String name, @NonNull Context context,//控制參數(shù)
@NonNull AttributeSet attrs) {
...
}
- CallSuper 注解:
@CallSuper
protected void onCreate(Bundle savedInstanceState) {
}
keep注解
注解可以確保如果在構(gòu)建時縮減代碼蝶溶,標(biāo)注的元素不會移除嗜历。它一般會添加到通過反射訪問的方法和類中,以阻止編譯器將代碼視為未使用抖所。資源注解:
@StringRes
@DrawableRes
@DimenRes
@ColorRes
@AnyRes 任意類型R資源
@InterpolatorRes 插值器資源線程注解:
@MainThread / @UiThread
@WorkerThread
@BinderThread
@AnyThread值約束注解:
@IntRange (@IntRange(from=0,to=255) int alpha)
@FloatRange
@Size 注解可以檢查集合或數(shù)組的大小梨州,以及字符串的長度。
- 最小大刑镌(例如 @Size(min=2))
- 最大大斜┙场(例如 @Size(max=2))
- 確切大小(例如 @Size(2))
- 表示大小必須為此倍數(shù)的數(shù)字(例如 @Size(multiple=2))
- 權(quán)限注解
@RequiresPermission
- Typedef 注解
使用 @IntDef 和 @StringDef 注解傻粘,以便能夠創(chuàng)建整型和字符串集的枚舉. flag屬性標(biāo)明是否可以位運算
//先定義常量
public static final int NAVIGATION_MODE_STANDARD = 0;
public static final int NAVIGATION_MODE_LIST = 1;
public static final int NAVIGATION_MODE_TABS = 2;
@Retention(RetentionPolicy.SOURCE)
@IntDef({NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})
public @interface NavigationMode {}
@NavigationMode //指定返回結(jié)果
public abstract int getNavigationMode();
public abstract void setNavigationMode(@NavigationMode int mode);//指定參數(shù)
//示例2帶flag
@IntDef(flag=true, value={
DISPLAY_USE_LOGO,
DISPLAY_SHOW_HOME,
DISPLAY_HOME_AS_UP,
DISPLAY_SHOW_TITLE,
DISPLAY_SHOW_CUSTOM
})
@Retention(RetentionPolicy.SOURCE)
public @interface DisplayOptions {}