我有这段代码:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (position < getItemCount()) {
holder.bind(mServiceInfo.agencies.get(position));
}
}
@Override
public int getItemCount() {
return mServiceInfo != null && mServiceInfo.agencies != null ? mServiceInfo.agencies.size() : 0;
}
Android Studio通过onBindViewHolder
方法向我发出警告,说我的mServiceInfo.agencies.get
电话可能会引发NPE。
这种情况无法实现,因为position
始终是一个正整数。我甚至将测试条件更改为:position >= 0 && position < getItemCount()
但警告仍然显示。
这是它的样子:
如何配置IDE不在此处发出警告?
请注意:
onBindViewHolder
中的NPE,因此IDE警告在此处无效答案 0 :(得分:2)
出现警告是因为代码的静态分析表明其中一个字段可能是null
。这可能是因为未在构造函数中设置的访问字段,@Nullable
注释或其他一些静态分析事件。
首先,确保您正在处理NPE并且它不会发生。警告是有原因的。如果您选中了,则有4个选项:
null
检查@Nullable
,始终初始化字段我推荐最后一个选项,因为它也适用于版本控制系统和其他工作站。 (如果你确定你知道自己在做什么。)