码迷,mamicode.com
首页 > 其他好文 > 详细

google 官方注解

时间:2015-02-13 11:40:22      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

 除了比较火的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/







google 官方注解

标签:

原文地址:http://blog.csdn.net/xxmbaobao1/article/details/43791969

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!