Android开发 - 处理 null 和 预防空指针异常(NullPointerException) 的一些经验
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android开发 - 处理 null 和 预防空指针异常(NullPointerException) 的一些经验相关的知识,希望对你有一定的参考价值。
参考技术A 在实际编码中总是会遇到 空指针异常 ,本文总结了一些处理空指针的个人经验。尽早的检查,尽早的失败。
比如: 通过intent传参到新的目标 activity,而且一定需要这个参数,那么在新的目标activity中 onCreate方法中 判断中这个参数,如果null,直接抛出空指针异常让程序崩溃。取代在使用该参数时进行检查,这样能更早的发现问题。或者在 一个普通的方法中,一个 参数必须不能为null ,那么我们在这个方法的第一行就做出判断,如果参数为null,抛出空指针异常。
1.不要在Set中使用null
2.不要把null作为map的键值。
3.尽可能的尽早检查,如果为 null 不执行或者 结束本方法
4.遇到必须的参数,比如通过intent传参到新的目标 activity,而且一定需要这个参数,那么在新的目标activity中判断是否有参数
5.判断字符串是否空
6.对字符串比较时,如果和常量进行比较,把常量放在前面,比如:
7.将某个对象 toString时,比如:
8.使用注解 @NonNull 和 @Nullable 配合androidStudio 帮你检查你是否没有检查可能为null的对象,或者你是否做了多余的检查。
9.我们引用Guava来帮忙检查 null 的情况,我们使用 checkNotNull 方法来替代写 if( obj == null) throw new NullPointExcetion(); ,示例:
Guava是什么:
http://ifeve.com/google-guava/
多个文案用符号拼接,最后一个不要符号(防空)
// 多个文案拼接,去掉最后一个拼接符号
export const moreStrConcat = (strList = [], symbol = '-') =>
const list = strList.filter(item => item);
if (list.length === 1) return list[0];
let str = '';
list.forEach((item, index) =>
if (index === list.length - 1)
str = str + item;
return;
str = str + item + symbol;
);
return str;
;
以上是关于Android开发 - 处理 null 和 预防空指针异常(NullPointerException) 的一些经验的主要内容,如果未能解决你的问题,请参考以下文章
Android实战开发篇 ViewPager+Fragment 取消预加载
在 Android 应用程序开发中预加载或预缓冲 .mp4 视频