安卓中@Nullable和NotNull 注释
来源:互联网 发布:ubuntu ssh连接不上 编辑:程序博客网 时间:2024/05/10 13:24
@Nullable和NotNull的作用
IntelliJ IDEA makes it possible to analyse the source code for the elements that can become null, and annotate them, provided that annotations are available in the project sources.
这些注解是用来标注方法是否能传入null值,如果可以传入NUll值,则标记为nullbale,如果不可以则标注为Nonnull. 在我们做了一些不安全严谨的编码操作的时候,这些注释会给我们一些警告。比如说
这个构造方法是要传入String的类型,但在实际调用中却传入了null,系统却没有任何提示,这在我们实际的开发中会造成难以察觉的错误。
但是在修改之后是这样的。
当注释了NonNull后,再次调用方法传入null后系统便会弹出警告。这个就是这两个注释的效果。
怎么生成@Nullable和NotNull?
在Android Studio中已经帮我们导入了相关的注释包,只要点击Android studio中的Infer Nullity变可以生成相应的注释。
关于注释的拓展
其实这两个注释都是从Android支持注解库中获取到的,在这个库中还有其他一些更好的注释:
@CheckResult
该注释是来告诉我们该方法的返回值类型是我们预计要使用的,而不是错误效果的方法:
可以看到,添加了这个注释后,系统会提示你所传入的参数格式是错误的(普通的提示只会分辨出是否传入的是String)
@StringRes 与 @DrawableRes 等等
你是不是在TextView上调用setText方法,经常会出现莫名其妙的异常Java android.content.res.Resources$NotFoundException: String resource ID #0x3039? 如果设置了一个整型数给setText,TextView会假定这个整型数是一个字符串的资源id,为了设置string文本将会查询这个整数。对于整型数是无效的资源id的问题,可以通过@StringRes 注解来补救。
以上就是我对这几个注释的理解和相关内容的整合,类似的注释还有很多,这里只讲了其中的几个典型的,感兴趣可以再去找找看。
- 安卓中@Nullable和NotNull 注释
- 安卓中的@Nullable和NotNull 注释
- 安卓中的@Nullable和NotNull 注释
- Nullable
- @Nullable
- @NotNull和@NotEmpty和@NotBlank区别
- @NotNull和@NotEmpty和@NotBlank区别
- @NotNull和@NotEmpty和@NotBlank区别
- (转)@NotNull和@NotEmpty和@NotBlank区别
- @NotNull和@NotEmpty和@NotBlank区别
- @NotNull和@NotEmpty和@NotBlank区别
- springmvc参数校验:@NotEmpty、@NotBlank和@NotNull
- grails中blank和nullable的区别
- Hibernate-validator和JSR303规范的@NotEmpty、@NotBlank、@NotNull
- @NotNull, @NotEmpty和@NotBlank之间的区别是什么?
- 理解null值和C#中可空类型(NullAble<T>)
- 详解NULLABLE、FIRSTPOS、LASTPOS和FOLLOWPOS的计算规则
- iOS 9新特性-nonnull,nullable和null_resettable
- http请求方法
- noip2016 Day2 T2-组合数问题-组合数学-前缀和
- C#判断一个String是否为数字类型
- ZOJ 3175 Number of Containers(n/1+n/2+...+n/(n-1)+n/n求法)
- HDU5690: All X(大数取模,同余)
- 安卓中@Nullable和NotNull 注释
- 动态生成控件并设置布局参数
- 命令行模式下的指令及多文件操作方式
- windows10和ubuntu16.04双系统下时间不对的问题
- HTML5无刷新修改URL
- 立flag
- Integer与int的那些小事
- Notepad++ Emmet执行时提示R6034 Runtime Error, 错误的解决方法
- 放苹果