我有一个应用程序,我需要让用户决定如何放置图片配置文件,(相机或图库)。我只有一个“Uri”类型的变量,但我不明白如何重置它并使其成为EMPTY,或检查它是否为EMPTY。因为当我选择一张照片时,如果你不喜欢那张照片,我必须能够改变照片。我已经测试过“if(followUri.equals(Uri.EMPTY)){...}”,但是应用程序崩溃并出现零点异常。
答案 0 :(得分:12)
只需检查空URI是否不等于followUri,此检查包括null
检查:
if (!Uri.EMPTY.equals(followUri)) {
//handle followUri
}
答案 1 :(得分:3)
如果Uri本身为null,则调用followUri.equals(Object)将导致NPE。更好的解决方案:
if (followUri != null && !followUri.equals(Uri.EMPTY)) {
//doTheThing()
} else {
//followUri is null or empty
}
答案 2 :(得分:1)
如果您的应用在该阶段与NPE崩溃followUri
很可能是null
。
同样Uri
个对象是不可变的,请参阅此处http://developer.android.com/reference/android/net/Uri.html,这样您就无法“重置”它。
答案 3 :(得分:0)
检查是否followUri != null
,之后您可以检查它是否为空,您得到NPE
,因为followUri
是null
不是吗?之后,您可以设置followUri = Uri.EMPTY