NullPointerException
,之前我没有异常。
所以,我拿了调试器并逐步完成了onCreate方法:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mDrawerListView = (ListView) inflater.inflate(
R.layout.fragment_navigation_drawer, container, false);
// Irrelevant code removed
mDrawerListView.setAdapter(mAccountAdapter);
return mDrawerListView;
}
不相关的代码只包括添加页脚视图和设置onClickListeners但在此方法(或任何其他)中没有一次我为mAccountAdapter
指定了内容。我知道我应该,而且我会去,但我犯了一个忘记这样做的错误。
当我使用调试器并在setAdapter(mAccountAdapter)
行设置断点时,我可以看到mAccountAdapter
为空。但是,我可以跨过它继续前进,而不会得到空指针异常。为什么我允许将null值传递给该函数?
答案 0 :(得分:4)
为什么我可以将空值传递给该函数?
为什么你不是?毕竟,ListView
在您第一次创建时以null
适配器开头。如果您查看the source for ListView
及其祖先,他们会检查mAdapter
(将保留当前Adapter
的数据成员)是否为null
。< / p>