SharedPreferences getString NULL 参数
SharedPreferences getString NULL parameter
如果我将 SharedPreferences.getString
的第二个参数设置为 NULL,我会在某些设备上收到错误(异常)吗?
SharedPreferences settings = ...
String data = settings.getString(_.PREFIX , null);
是否会导致至少一台设备出现异常或错误?或者我必须将这部分代码包装在 try-catch 块中?
String data = settings.getString(_.PREFIX , null/这里的null是默认值/);
null - 当你的 SraredPreferences 没有这个项目时你可以收到(例如,如果你 call/get 这个字符串在设置到这个字段之前任何信息或用户从设备设置清除应用程序的现金)。我认为这可能是正常情况,如果你希望得到它(一些 emum 字段),你可以用一些默认值删除 "null" 。
如果您不认为在使用前获取空验证数据。
我认为您的应用程序必须准备好获得这两种变体,因为用户可以更改正常的工作流程。
如果您问如果将第二个参数设置为 null 是否会 得到异常,答案是否定的(至少不会,除非您在没有先检查的情况下引用结果它不为空)。 getString()
方法中的第二个参数是默认值(即如果没有找到您的前缀将返回的值。因此,将 null
设置为默认值是完全可以接受的,只要您意识到(并说明)您的 getString()
返回的值可能为空这一事实。
如果我将 SharedPreferences.getString
的第二个参数设置为 NULL,我会在某些设备上收到错误(异常)吗?
SharedPreferences settings = ...
String data = settings.getString(_.PREFIX , null);
是否会导致至少一台设备出现异常或错误?或者我必须将这部分代码包装在 try-catch 块中?
String data = settings.getString(_.PREFIX , null/这里的null是默认值/); null - 当你的 SraredPreferences 没有这个项目时你可以收到(例如,如果你 call/get 这个字符串在设置到这个字段之前任何信息或用户从设备设置清除应用程序的现金)。我认为这可能是正常情况,如果你希望得到它(一些 emum 字段),你可以用一些默认值删除 "null" 。 如果您不认为在使用前获取空验证数据。 我认为您的应用程序必须准备好获得这两种变体,因为用户可以更改正常的工作流程。
如果您问如果将第二个参数设置为 null 是否会 得到异常,答案是否定的(至少不会,除非您在没有先检查的情况下引用结果它不为空)。 getString()
方法中的第二个参数是默认值(即如果没有找到您的前缀将返回的值。因此,将 null
设置为默认值是完全可以接受的,只要您意识到(并说明)您的 getString()
返回的值可能为空这一事实。