【问题标题】:Is there a way to check if a variable is defined in Java?有没有办法检查变量是否在 Java 中定义?
【发布时间】:2012-01-04 21:06:15
【问题描述】:

在我的 android 应用程序中,我需要检查是否已经定义了一个变量,所以我没有收到空指针异常。有什么办法吗?

【问题讨论】:

    标签: java android variables


    【解决方案1】:

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

    但是注意变量可以为null,可以检查一个是否为null,避免NullPointerException

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

    【讨论】:

    • 我猜你混合了 Javascript 和 Java。 Javascript 是动态的,在代码不经过编译的地方进行解释。所以,在 JS 中检查它是很有意义的。
    • @Chartle 这是正确的。在 Java 领域,我们使用术语声明和初始化。 Foo var; 是声明。 var = new Foo(); 是 var 的初始化。我们正在实例化 Foo 的一个实例。值得阅读这些条款以帮助理解其他问题。
    • 是的,我只是想检查一个变量是否为空。我在 android 和我的 OnCreate() 中执行此操作,并将其初始化为一个带有两个插槽的空数组,在我的 onResume() 中我检查它是否仍然为空并且我得到 NullPointers。尝试扔它们但仍然没有
    • 没关系,我明白了。刚刚放入了一个旧的 try/catch 块;
    【解决方案2】:
    if (variableName != null)
    {
    //Do something if the variable is declared.        
    }
    else
    {
    //Do something if the variable doesn't have a value        
    }
    

    我认为应该这样做。

    【讨论】:

      【解决方案3】:

      如果我们尝试在 java 中使用未定义的变量,它将抛出异常。为了克服这些,使用包装类并将其分配给 null。

      Integer a = null; //correct
      int a = null;//error
      

      【讨论】:

        猜你喜欢
        • 2012-03-25
        • 1970-01-01
        • 1970-01-01
        • 2022-11-12
        • 2011-02-19
        • 1970-01-01
        • 2017-06-14
        • 1970-01-01
        • 2017-10-01
        相关资源
        最近更新 更多