如何处理空指针警告
2016-04-03 19:34
525 查看
在AndroidStudio开发Android应用中,有时候会看到这样的警告“Method invocation 'titleTxt.setOnClickListener(new View.OnClickListener() { @Override public vo...' may produce 'java.lang.NullPointerException”。这个警告的意思是这段代码可能会出现空指针。
为了保证代码的健壮性,我们有两种方式可以选择。
一、对变量进行判断,如果为空就输出日志信息。代码如下。
这样写无疑是最稳健的办法。但是在开发过程中这种空指针异常非常少见,如果每一个组件都为空指针增加这样的判断代码量会增加很多,而且这样写没有必要。因此,在确保空指针不会发生情况下,可以采用第二种方式。
二、通过assert声明该变量不为空
为了保证代码的健壮性,我们有两种方式可以选择。
一、对变量进行判断,如果为空就输出日志信息。代码如下。
<pre name="code" class="java"> TextView titleTxt = (TextView) findViewById(R.id.txt_title); if (titleTxt != null){ titleTxt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //do something } }); }else { Log.w("tag","titleTxt的ID错误"); }
这样写无疑是最稳健的办法。但是在开发过程中这种空指针异常非常少见,如果每一个组件都为空指针增加这样的判断代码量会增加很多,而且这样写没有必要。因此,在确保空指针不会发生情况下,可以采用第二种方式。
二、通过assert声明该变量不为空
<span style="white-space:pre"> </span>TextView titleTxt = (TextView) findViewById(R.id.txt_title); assert titleTxt != null; titleTxt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //do something } });用这种方式之前一定要按住Ctrl左键单击ID确认该组件是不是在当前Activity中,否则这样写就是自己骗自己了。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories