【发布时间】:2019-06-21 22:23:12
【问题描述】:
我有一个检索数据库实例的静态方法:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
GlobalVariables.appVersion = sharedPreferences.getString(GlobalVariables.SHARED_PFC_APP_VERSION_KEY, GlobalVariables.APP_VERSION_HOW);
return makeInstance(context, GlobalVariables.appVersion);
GlobalVariables 类是完全静态的,所有变量也是最终静态的。
现在 Lint 警告我 return makeInstance(context, GlobalVariables.appVersion) 中的第二个参数可能为空。
这个怎么可能? 当在 SP 中找不到任何东西时,我没有传递 static 默认值吗?
它不能是 GlobalVariables 值本身,因为它们都是静态的,如果我只是将它分配给没有 SP 的 appVersion,它就可以工作。
我怀疑这可能是因为contextargument,但即使是if != null 安全检查也不会删除此警告。
这是否意味着SharedPreferences 实例在这种情况下可以为空?
是什么原因造成的,我怎样才能让它安全?
【问题讨论】:
标签: java android sharedpreferences