【问题标题】:Checking Array for null element检查数组是否有空元素
【发布时间】:2013-03-07 20:28:38
【问题描述】:

所以我创建了我自己的包含 5 个私有字段的类:每个都是一个具有预设长度的数组。这是我创建表格的方式,其中每个数组都是一列,并且它们具有预设长度,因为并非每个单元格都包含一个元素(因此,不使用任何动态)。

无论如何,我的问题是:我可以检查特定数组的特定单元格是否包含“null”吗?使用 .equals(null) 会产生 nullpointerexception :(

【问题讨论】:

    标签: java arrays null nullpointerexception


    【解决方案1】:

    当你调用.equals(...) 时,你调用了对象的一个​​方法。如果为空,则没有方法。因此像这样进行空检查:

    if (myArray[position] == null) {
        ....
    
    }
    

    【讨论】:

    • Derp,你完全正确。我正在将字符串放入数组单元格中,并且只是在“.equals”踢球。现在工作正常!感谢您的帮助。
    【解决方案2】:

    不要做 .equals(null) 但 == null:

    if( the_array[i] == null ) {
      //...
    }
    

    考虑通过二维数组构建一个表。示例:

    TheClass my_array[][] = new TheClass[10][5];
    

    【讨论】:

      【解决方案3】:

      你应该使用

      if (cell[i] == null){
      
      
      }
      

      因为您正在测试引用相等性。而在 cell[i] 实际上为 null 的情况下,null 没有 equals 方法。

      【讨论】:

        【解决方案4】:

        混合了 for 循环和 null 构造

        for(Integer ints : intNum) {
            if(intNum != null) {
              //valid
            }
        } 
        

        【讨论】:

        • 小修正:它是 (int != null) 那里有一个 = 太多。请打错字。 ;)
        【解决方案5】:

        我更好奇你为什么要制作 5 个数组?你听说过多维数组吗?在这种情况下,也许这就是您真正需要的。

        这样的数组: int[][] arrayName = new int[3][3];

        将表示一个包含 3 行和 3 列的数组。

        也许你早就知道了,但如果你只是想要一个类似表格的结构,我觉得制作五个不同的数组很奇怪。

        【讨论】:

        • 它将成为递归解析树的表表示的一部分。我可以做一个多维数组,但不是通过递归维护另一个整数,我只访问该列的数组名称。
        猜你喜欢
        • 2017-09-05
        • 2015-08-09
        • 2013-07-20
        • 2017-11-26
        • 1970-01-01
        • 2019-05-14
        • 1970-01-01
        • 2021-06-08
        • 1970-01-01
        相关资源
        最近更新 更多