gpt4 book ai didi

android - Android Studio 中的方法调用突出显示错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:02:10 25 4
gpt4 key购买 nike

我对 Android Studio 有点困惑。我以前没有在 Eclipse 中看到过这种错误。

例子:

    FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction tf = fragmentManager.beginTransaction();
Fragment oldFragment = fragmentManager.findFragmentByTag(AddDialogFragment.TAG);

这段代码工作正常,但是 fragmentManager.beginTransaction();被突出显示并说:方法调用 'fragmentManager.beginTransaction' 可能会产生 'java.lang.NullPointerException' 更少... (Ctrl+F1)

此检查报告指定检查范围内始终为真或假的条件,并根据代码的数据流分析指出可能抛出 RuntimeException 的位置。此检查还报告 Nullable/NotNull 契约(Contract)违规。可以配置支持契约的注释(默认情况下将使用 annotations.jar 中的@Nullable/@NotNull 注释)

我必须先检查 Null 吗?

    FragmentManager fragmentManager = getFragmentManager();
if(fragmentManager != null)
FragmentTransaction tf = fragmentManager.beginTransaction();
Fragment oldFragment = fragmentManager.findFragmentByTag(AddDialogFragment.TAG);

我以前从未在任何 Tut 或 Example 中看到过这个。如果这是一个愚蠢的问题而不是抱歉,但我仍然是初学者 :).

最佳答案

据我所知,Android Studio 显示了一些关于潜在 NullPointerExceptions 的警告,即使对于永远不会返回 null 的方法也是如此。我只是忽略了其中的一些,但仔细检查所有这些内容很有用,因为有时我会错过一个重要的内容。

如果您查看 android 源代码,很容易看出 getFragmentManager() 永远不会返回 null :

public FragmentManager getFragmentManager() {
return mFragments;
}

mFragments 在整个类中只分配一次:

final FragmentManagerImpl mFragments = new FragmentManagerImpl();

关于android - Android Studio 中的方法调用突出显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17270838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com