在Java中有没有一种方法可以检查变量是否已定义?

19

在我的安卓应用中,我需要检查一个变量是否已经被定义,以免出现空指针异常。有什么办法可以解决这个问题吗?

3个回答

39

如果您尝试使用未定义的变量,代码将无法编译,因为在Java中,必须先定义变量才能使用。

但请注意,变量可以为null,并且可以检查是否为null以避免NullPointerException

if (var != null) {
    //...
}

我猜你混淆了Javascript和Java。Javascript是动态解释的,代码不需要编译。因此,在JS中检查它非常有意义。 - Bhesh Gurung
@Chartle 这是正确的。在Java领域中,我们使用术语声明和初始化。Foo var;是声明。var = new Foo();是对var进行初始化。我们正在实例化Foo的一个实例。值得阅读这些术语以帮助理解其他人的问题。 - Daniel Moses
是的,我只是想检查一个变量是否为空。我正在Android上进行操作,在我的OnCreate()函数中,我将其初始化为空数组,并具有两个插槽,在我的onResume()中,我检查它是否仍为空并且我得到了NullPointers(空指针异常)。我尝试抛出异常,但仍然没有用。 - chartle7
没事了,我搞定了。只是加入了一个旧的 try/catch 块; - chartle7

3
if (variableName != null)
{
//Do something if the variable is declared.        
}
else
{
//Do something if the variable doesn't have a value        
}

我认为这应该可以解决问题。


1
如果我们在Java中尝试使用未定义的变量,它将抛出异常。为了克服这些问题,可以使用包装类并将其赋值为null。
Integer a = null; //correct
int a = null;//error

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接