除了比较火的xutils butterknife注解框架外,google官方已经开始在support 包的 19.1版本中中加入自己的注解了,这个一个内部测试版本。
使用gradle把这句添加到你的项目中:
compile ‘com.android.support:support-annotations:20.0.0‘
我们先来看看基本的三种类型:
- Nullness
- Resource type
- IntDef and StringDef
接下来看看它们分别如何使用的
Nullness
@NonNull
表示参数不能为空
这段代码使用这个注解传递一个null参数过去:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String name = null;
sayHello(name);
}
void sayHello(@NonNull String s) {
Toast.makeText(this, "Hello " + s, Toast.LENGTH_LONG).show();
}
}
IDE会发出警告
使用非空的参数这个警告就会消失.
@Nullable
表示参数或者返回值不能为空.
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
User user = new User("Our Lord Duarte");
Toast.makeText(this, "Hello " + getName(user), Toast.LENGTH_LONG).show();
}
@Nullable
String getName(@NonNull User user) {
return user.getName();
}
}
使用了@Nullable注解机会帮我们做检查
Toast.makeText(this, "Hello " + getName(user), Toast.LENGTH_LONG).show();
如果没有检查非空就会存在潜在的crash问题。
更多详细内容参考:
http://anupcowkur.com/posts/a-look-at-android-support-annotations/
时间: 2024-10-12 02:43:15