您的位置:首页 > 移动开发 > Android开发

如何处理空指针警告

2016-04-03 19:34 525 查看
在AndroidStudio开发Android应用中,有时候会看到这样的警告“Method invocation 'titleTxt.setOnClickListener(new View.OnClickListener() { @Override public vo...' may produce 'java.lang.NullPointerException”。这个警告的意思是这段代码可能会出现空指针。

为了保证代码的健壮性,我们有两种方式可以选择。

一、对变量进行判断,如果为空就输出日志信息。代码如下。

<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中,否则这样写就是自己骗自己了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息