为什么我需要添加 if(null!= rb&& checkedId> -1),如果删除代码,程序仍然有效。这行代码的好处是什么?
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton rb = (RadioButton) group.findViewById(checkedId);
if (null != rb && checkedId > -1) {
switch (rb.getId()){
case R.id.radioFast:
mAnimOption = FAST;
break;
case R.id.radioSlow:
mAnimOption = SLOW;
break;
case R.id.radioNone:
mAnimOption = NONE;
break;
}
// End switch block
mEditor.putInt("anim option", mAnimOption);
}
}
});
答案 0 :(得分:1)
好处是避免nullpointerexception,这可能导致您的Android应用程序崩溃。
答案 1 :(得分:0)
if (null != rb && checkedId > -1)
它用于避免崩溃,因此每当调用NULL或用户checkedId为NULL时,它都会抛出错误,并避免不必要的崩溃。
根据开发者的说法,我们应该以这种方式制作代码,在APP运行期间不会出现崩溃。
答案 2 :(得分:0)
正如其他答案所说,需要避免NullPointerException
我同意他们的意见。
但根据你的代码,它不是必需的。您无需检查null
。这是为什么?
方法
public void onCheckedChanged(RadioGroup group, int checkedId) {}
返回group
类型的RadioGroup
对象,当前选择的RadioButton
ID为checkedId
。因此,您不需要检查null,因为您已经拥有checkedId
。
因此,直接使用switch
语句来比较预期的案例。
如果checkedId
与案例不匹配(即-1或其他值),请使用default
案例。