java - Android 可空和非空 : Method invocation 'getSearchableInfo' may produce 'NullPointerException'

标签 java android warnings nullable non-nullable

我有以下代码 fragment ,但它显示警告方法调用“getSearchableInfo”可能会产生“NullPointerException”

ComponentName s = getComponentName();
if (s ==null)
    return;
@NonNull ComponentName componentName = getComponentName();
SearchableInfo searchableInfo = searchManager
   .getSearchableInfo(componentName); //<--  Warning Line

我可以找到 Kotlin 的示例,但我不知道如何在 Java 中消除此警告?

最佳答案

当您遇到 NullPointerException 调用带有以下消息的方法时:

java.lang.NullPointerException: Attempt to invoke virtual method getSearchableInfo

通常,当调用该方法 (.getSearchableInfo()) 的类未正确初始化时,您会遇到此错误。

请务必初始化SearchManager:

  //Initialize SearchManager
  SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
  ...
  ...
  SearchableInfo searchableInfo = searchManager.getSearchableInfo(getComponentName());

关于java - Android 可空和非空 : Method invocation 'getSearchableInfo' may produce 'NullPointerException' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57242747/

相关文章:

c++ - 重新配置 C++ 代码以处理 `warning: unsequenced modification and access to parameter`

java - 多功能socket java,socket vs NIO socket

java - 我如何在intellij idea插件开发中获取maven本地存储库

java - 在 ViewPager 上跨多个 fragment 加载 Json,需要更好的方法

android - Phonegap 在本地构建发布版本(没有 Phonegap Build)

没有 Java 的 Android 主屏幕小部件

python - 平均值、纳米平均值和警告 : Mean of empty slice

Wix:如何警告用户而不是使用属性终止安装?

java - Android TabHost 语法

java - 如何使用zookeeper监控不同机器上运行的Java应用程序的状态?