android 中的一些资源注解,让编译器帮你检查代码

写方便的时候可以用注解来声明一些参数,以明确的指示参数的类型,让代码更安全。我们看到,在android源代码里大量使用了注解。我整理了一些注解如下:

@NonNull  告诉编译器,这个参数是非空的,编译器会帮你做出检查。

示例:

@NonNull
public static Snackbar make(@NonNull View view, @StringRes int resId, @Duration int duration) {
    return make(view, view.getResources().getText(resId), duration);
}

@Nullable 声明参数是可能为空的,编译器会帮你做出检查

示例:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {}

@IdRes   声明这个 int 参数是个 id,编译器会帮你做出检查

public View findViewById(@IdRes int id) {
    return getDelegate().findViewById(id);
}

@StringRes  声明这个 int 参数 是一个字符串资源,编译器会帮你做出检查

示例:

@NonNull
public Snackbar setAction(@StringRes int resId, View.OnClickListener listener) {
    return setAction(mContext.getText(resId), listener);
}

@StyleRes 声明参数是 style 类型,编译器会帮你做出检查

@Override
public void setTheme(@StyleRes final int resid) {}

@LayoutRes 声明参数是个 layout 类型,,编译器会帮你做出检查

示例:

public void setContentView(@LayoutRes int layoutResID)

类似的有很多,看名字就知道干什么用的

@DimenRes  @DrawableRes  @RawRes  @ColorRes  @XmlRes

@BoolRes   @IntegerRes @StyleableRes

另:

    @Keep  声明这个方法不被混淆

android 中的一些资源注解,让编译器帮你检查代码的更多相关文章

  1. Android中的Drawable资源

    在Android应用中,常常会用到Drawable资源,比如图片资源等,在Android开发中我们是用Drawable类来Drawable类型资源的. Drawable资源一般存储在应用程序目录的\r ...

  2. Android中通过数组资源文件xml与适配器两种方式给ListView列表视图设置数据源

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  3. Android中四种补间动画的使用示例(附代码下载)

    场景 Android中四种补间动画. 透明度渐变动画 旋转动画 缩放动画 平移动画 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程 ...

  4. Android中获取网页表单中的数据实现思路及代码

    在Android中获取网页里表单中的数据具体实现代码如下,感兴趣的各位可以参考过下哈,希望对大家有所帮助 MainActivity如下: 复制代码 代码如下: package cn.testjavas ...

  5. Android中 string.xml资源 如何添加参数?

    在android 开发,我们通常会用string.xml资源去设置textview等控件的字符串.而值一般是与程序的运行结果无关的. 但有时需要根据运行的结果来显示到控件中,这时字符串资源就不能写死了 ...

  6. android中的原始资源的使用

    原始资源可以放在两个地方: 1.位于/res/raw目录下,android SDK会处理该目录下的原始资源,android SDK会在R清单类中为该目录下的资源生成一个索引项. 2.位于/assets ...

  7. android中的属性资源

    属性资源可以很好的控制自定义View组件的外观行为. 属性资源放置在/res/values目录下,属性资源文件的根目录元素是<resources.../>,该元素包含如下两个子元素: at ...

  8. Android中通过ImageSwitcher实现相册滑动查看照片功能(附代码下载)

    场景 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将需要滚动查看的照 ...

  9. android中的数据库操作

    如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...

随机推荐

  1. String 方法indexOf()

    indexOf()来测是否包含子字符串. indexOf(sub, start) 如果return 是-1 包含没有找到字段.

  2. grpc 使用流程、使用技巧

    1.通过maven插件编译出java stub类. 2.对于批量调用的场景,我们可以使用FutureStub,对于普通的业务类型RPC,我们应该使用BlockingStub. 3.创建批量生成多个语言 ...

  3. win7查看其它工作组 win7 所有工作组

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha win7 所有工作组 ==== win7  网络 工作组 查找 自身有问题.  多刷新几 ...

  4. 【漏洞复现】ES File Explorer Open Port Vulnerability - CVE-2019-6447

    漏洞描述 在受影响的ES文件浏览器上,会启用59777/tcp端口作为HTTP服务器,攻击者只需要构造恶意的json请求就可以对受害者进行文件下载,应用打开.更可以用过漏洞进行中间人(MITM)攻击. ...

  5. Python3练习题系列(04)

    题目: 制作一个游戏 知识点: 函数.if_elif_else, while, exit 游戏图谱: 游戏代码: from sys import exit def gold_room(): print ...

  6. Linux 下 make 命令 及 make 笔记

    Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一.管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题.本文我们将用一些实例来讨论 make ...

  7. 走进java

    Java 技术体系 1.java技术语言 2.各种硬件平台上的java虚拟机 3.Class文件格式 4.Java API类库 5.来自商业机构和开源社区的第三方Java类库 我们把Java程序设计语 ...

  8. iOS离屏渲染之优化分析

    在进行iOS的应用开发过程中,有时候会出现卡顿的问题,虽然iOS设备的性能越来越高,但是卡顿的问题还是有可能会出现,而离屏渲染是造成卡顿的原因之一.因此,本文主要分析一下离屏渲染产生的原因及避免的方法 ...

  9. Menu实现逻辑

        一.前奏 创建一个WS_EX_NOACTIVATE的窗体 创建窗体后注册Hook消息(鼠标在非Menu区域点击时关闭menu,接收键盘消息用于快捷键,接WM_SETFOCUS消息,当打开新窗体 ...

  10. centos7 使用rsync 实现文件同步

    一.服务端(192.168.8.81): 安装软件: yum -y install rsync 创建需同步的目录: mkdir -p /home/root/rsync 编辑配置文件:vim /etc/ ...