tenc1239 2023-07-02 17:24 采纳率: 76%
浏览 13
已结题

java 判断数组为空 只有条件 arr==null 为什么报错?


// 这样写 不报错
int[] aa = {};
        System.out.println("aa 为空:" + aa);
        if (aa == null || aa.length == 0) {
            System.out.println("aa 为空");
        }

// 这样写报错 --> 有黄色下划线 也没有打印出来任何东西
int[] aa = {};
        System.out.println("aa 为空:" + aa);
        if (aa == null) {
            System.out.println("aa 为空");
        }

  • 写回答

1条回答 默认 最新

  • Minuw 2023-07-02 17:50
    关注

    在 Java 中,数组的默认值为 null。当一个数组被声明时,它的值实际上是 null。

    所以,当你使用 if (aa == null) 判断数组是否为空时,实际上是在判断一个 null 引用是否等于 null。由于 null 引用不等于任何对象,因此这个条件永远不会为 true,导致程序无法执行到 if 语句块中的代码。

    正确的判断数组是否为空的方法是使用 if (aa.length == 0),因为数组的长度属性表示数组中元素的数量,如果长度为 0,则说明数组为空。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月11日
  • 已采纳回答 7月3日
  • 创建了问题 7月2日

悬赏问题

  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 求一份STM32F10X的I2S外设库
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?