移除 Android Studio“方法调用'getFragment'可能会产生'NullPointerException'警告?

Remove Android Studio "Method invocation 'getFragment' may produce 'NullPointerException" warning?

提问人:Albert Einstien 提问时间:6/16/2022 更新时间:6/16/2022 访问量:255

问:

Android Studio 在以下语句中向我发出警告Method invocation 'getFragment' may produce 'NullPointerException'

toSwitch = ((LoginActivity) getActivity()).getFragment(LoginFragment.class.getName());

我读过与此相关的其他问题,他们说要使用断言,但这不是我想要的。Objects.requireNonNull()

在将此标记为重复之前

该方法可以返回 null 值,并且是必需的行为。我怎样才能告诉android studio我需要那个null值,它完全没问题。getFragment(String name)

java android-studio nullpointerException 警告

评论

0赞 Seelenvirtuose 6/16/2022
您收到的警告指出,方法调用可能会产生 NPE。这意味着,结果可能是 。警告没有告诉你任何关于结果的信息(尽管如此,这里还是不管的)。getActivity()nullgetFragment
0赞 laalto 6/16/2022
@Seelenvirtuose是对的,一个简单的解决方法是将其替换为返回非 null 或抛出异常。getActivity()requireActivity()
0赞 Albert Einstien 6/16/2022
@laalto 但是该函数可以返回值,并且完全没问题
0赞 laalto 6/16/2022
这不是关于而是.getFragment()getActivity()
0赞 Seelenvirtuose 6/16/2022
@TrueCoder: “但是该函数可以返回值,并且完全没问题” => 如果返回,那么你将得到一个 NPE。这是不行的!该方法在这里无关紧要。getActivity()nullgetFragment

答: 暂无答案