寫方便的時候可以用注解來聲明一些參數(shù)扫沼,以明確的指示參數(shù)的類型出爹,讓代碼更安全结耀。我們看到域那,在android源代碼里大量使用了注解。我整理了一些注解如下:
@NonNull 告訴編譯器,這個參數(shù)是非空的枕面,編譯器會幫你做出檢查连霉。
示例:
@NonNull
public static Snackbar make(@NonNull View view, @StringRes int resId, @Duration int duration) {
return make(view, view.getResources().getText(resId), duration);
}
@Nullable 聲明參數(shù)是可能為空的莺奸,編譯器會幫你做出檢查
示例:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {}
@IdRes 聲明這個 int 參數(shù)是個 id弛针,編譯器會幫你做出檢查
public View findViewById(@IdRes int id) {
return getDelegate().findViewById(id);
}
@StringRes 聲明這個 int 參數(shù) 是一個字符串資源,編譯器會幫你做出檢查
示例:
@NonNull
public Snackbar setAction(@StringRes int resId, View.OnClickListener listener) {
return setAction(mContext.getText(resId), listener);
}
@StyleRes 聲明參數(shù)是 style 類型铸董,編譯器會幫你做出檢查
@Override
public void setTheme(@StyleRes final int resid) {}
@LayoutRes 聲明參數(shù)是個 layout 類型祟印,,編譯器會幫你做出檢查
示例:
public void setContentView(@LayoutRes int layoutResID)
類似的有很多粟害,看名字就知道干什么用的
@DimenRes @DrawableRes @RawRes @ColorRes @XmlRes
@BoolRes @IntegerRes @StyleableRes
另:
@Keep 聲明這個方法不被混淆