Kat*_*ave 10 android nullpointerexception android-studio
我在Android Studio中有点困惑.我之前没有在Eclipse中看到过这种错误.
例:
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction tf = fragmentManager.beginTransaction();
Fragment oldFragment = fragmentManager.findFragmentByTag(AddDialogFragment.TAG);
Run Code Online (Sandbox Code Playgroud)
这段代码工作得很好,但是fragmentManager.beginTransaction(); 突出显示并说:方法调用'fragmentManager.beginTransaction'可能会产生'java.lang.NullPointerException'较少...(Ctrl + F1)
此检查报告指定检查范围中始终为true或false的条件,并根据代码的数据流分析指出可能抛出RuntimeException的位置.此检查还报告Nullable/NotNull合同违规.可以配置支持合同的注释(默认情况下,@ Nullable/@NotNull将使用annotations.jar中的注释)
我以前要检查Null吗?
FragmentManager fragmentManager = getFragmentManager();
if(fragmentManager != null)
FragmentTransaction tf = fragmentManager.beginTransaction();
Fragment oldFragment = fragmentManager.findFragmentByTag(AddDialogFragment.TAG);
Run Code Online (Sandbox Code Playgroud)
我以前从未在任何Tut或例子中看过这个.如果这是一个愚蠢的问题而不是抱歉,但我仍然是初学者:).
Dal*_*mas 13
从我所看到的,Android Studio显示了一些关于潜力的警告NullPointerExceptions,即使对于永远不会返回null的方法也是如此.我只是忽略其中的一些,但仔细检查所有这些是有用的,因为有时我错过了一个重要的.
如果你看一下android源代码,很容易看出getFragmentManager()永远不会返回null:
public FragmentManager getFragmentManager() {
return mFragments;
}
Run Code Online (Sandbox Code Playgroud)
mFragments只在整个类中分配一次:
final FragmentManagerImpl mFragments = new FragmentManagerImpl();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5268 次 |
| 最近记录: |