google 官方注解

除了比较火的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-07-28 17:43:12

google 官方注解的相关文章

Google官方MVP模式示例项目解析 todo-mvp

转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6700668.html 引言:在Google没有给出一套权威的架构实现之前,很多App项目在架构方面都有或多或少的问题.第一种常见问题是没有架构,需求中的一个页面对应项目中的一个activity或一个fragment,所有的界面响应代码.业务逻辑代码.数据请求代码等等都集中在其中.第二种常见的问题是架构实现的不断变化,不断在各种架构间摇摆,一直找不到一个适合自己的架构. Google官方示例项目地址 ht

Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持

在Google官方Android设计指南中(链接:http://www.apkbus.com/design/get-started/ui-overview.html)有一个新特性就是自我标识,也就是宣传自己,所以很多应用现在也自然的使用ActionBar并提供自己的logo. 微信的应用: Google的Android设计指南中是这样说的:应用的 启动图标 作为启动应用的入口是展示 logo 的最佳场所.你也可以将启动图标放置在 操作栏 上,从而保证在应用内的所有页面上都能看到它. 在使用Act

下载Google官方/CM Android源代码自动重新开始的Shell脚本

国内由于某种原因,下载CM或Google官方的Android源代码总容易中断.总看着机器,一中断就重新执行repo sync还太麻烦,所以我特意编写了一段shell脚本(download.sh).通过获取shell最后返回的状态码来决定是否再次执行repo sync命令. #!/bin/bash echo "======start repo sync======" repo sync # 第一次下载android源代码 while [ $? != 0 ]; do echo "

ubuntu 14.04 64位使用google官方android开发集成工具adt-64位无法使用adb

在使用ubuntu64位(14.04)时,下载来一个adt-bundle-linux-x86_64-20131030.zip,但是运行时报错: Android: Gradle: Execution failed for task Cannot run program android-studio/sdk/build-tools/android-4.2.2/aapt error=2, 没有那个文件或目录 使用aapt编译资源时报错, 提示找不到aapt这个命令, 可是在sdk中命名存在这个可执行文

Google官方网页载入速度检测工具PageSpeed Insights 使用教程

相信有接触前端开发的大神们都听说过Google官方的PageSpeed Tools,这个网页载入速度检测工具有在线版本也有一个 Chrome 扩展,叫PageSpeed Insights,在此之前,Jeff 了解的更多是雅虎的 Yslow .不过在Jeff 使用过 PageSpeed Insights 后,感觉更加容易上手--因为人家PageSpeed Insights 有中文!下面就介绍一下PageSpeed Insights. Google官方的PageSpeed Tools的两个版本 在线

Android屏幕适配全攻略(最权威的Google官方适配指导)

Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将有所收获! 出处:http://blog.csdn.net/zhaokaiqiang1992 Android屏幕适配出现的原因 重要概念 屏幕尺寸 屏幕分辨率 屏幕像素密度 dpdipdpisppx mdpihdpixdpixxdpi 解决方案 支持各种屏幕尺

【凯子哥带你夯实应用层】Android的Google官方设计指南(上)

Android 设计规范 时间 2015.3.2 版本 V1.0 翻译 杨鹏 整理 赵凯强 本文章是我公司一个大牛之前的公司同事翻译的Android的Google官方设计指导,经过我整理而成,分享给大家,欢迎转载,但是请保留出处和翻译作者.本指导内容详实.规范,无论是初级开发者还是高级开发者,甚至是公司产品设计和美工,都应该研读学习,特此推荐!由于文章内容较颇多,所以我分为几篇发布,方便大家阅读学习.如果对你有帮助,请评论或者顶一下代表支持,谢谢! 还是人多力量大啊,有同学告诉我已经有这样的资料

MVP学习笔记——参考Google官方demo

demo地址:https://github.com/googlesamples/android-architecture 在这个项目里,每个包的分工都很明确,大体上来说,一个包会对应一个界面.一个界面就会对应一个MVP. M:还是模型层和业务层 V:视图层.Activity或者Fragment,在这份代码里面,Google是把Fragment当作一个V,而不是Activity P:Prensenter,用来控制V. 按我的理解是,MVP主要就是通过P来解耦M和V,P用来沟通M和V,使得两者不必直

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具 记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了,所有重构了一下思路,覆写了一篇 Google主推-Android开发利器--Android Studio,这可能是最全的AS教程! Android Studio,自Google2013年发布以来,就倍受Android开发者的喜爱,我们本书,就是基于Android Studio来进行案例演示的,大家都知道,Android