文章目录
  1. 1. Nullness注解
  2. 2. 资源类型注解
  3. 3. IntDef和StringDef注解

Android Support Library 19.1版本中加入了几个好用的注解

通过gradle导入工程中

1
compile 'com.android.support:support-annotations:22.2.0'

有以下三种注解:

  • Nullness注解
  • 资源类型注解
  • IntDef和StringDef注解

Nullness注解

  • 使用@NonNull注解修饰的参数不能为null

    1
    2
    3
    4
    5
    void say(@NonNull String s){
    // ...
    }

    say(null); // 在IDE中,这行代码会提示警告
  • 使用@Nullable注解修饰的函数参数或者返回值可以为null

    1
    2
    3
    4
    @Nullable
    String getName(@NonNull String str){
    return str;
    }

资源类型注解

  • 使用@StringRes注解表示函数期望接受一个字符串类型的id,而不是一个普通的int
    1
    2
    3
    void show(@StringRes int id) {
    getResources().getString(id);
    }

同理可用的注解还有AnimatorRes,AnimRes,ArrayRes,ColorRes,DimenRes,DrawableRes,IdRes,StyleRes

IntDef和StringDef注解

很多时候我们用枚举类型来控制一些模式
这个时候可以使用@IntDef来代替

1
2
3
4
5
6
7
8
9
10
public static final int VANILLA = 0;
public static final int CHOCOLATE = 1;

@InDef({VANILLA,CHOCOLATE})
public @interface Flavour{}

// 使用@Flavour自定义注解,表示它可以接受的值的类型
public void setFlavour(@Flavour int flavour) {

}

文章目录
  1. 1. Nullness注解
  2. 2. 资源类型注解
  3. 3. IntDef和StringDef注解