学-海无涯- 2024-05-29 21:21 采纳率: 76%
浏览 14
已结题

方法传入的包装类Short,不能为空吗?

定义了一个方法,要传入Short类的变量,然后传入了一个Short类的gender为null,方法报错,提示java.lang.Short.shortValue(),because gender is null

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-29 21:21
    关注

    引自免费微信小程序:皆我百晓生

    在Java中,Short 类是原始类型 short 的包装类,它是一个对象,因此它可以被赋值为 null。然而,当你尝试访问 Short 对象的 shortValue() 方法时,如果你传递的是 null,将会抛出 NullPointerException,因为这个方法会试图从 null 对象获取值。

    为了避免这个问题,在调用 shortValue() 之前,你应该检查 Short 对象是否为 null。你可以通过使用 Objects.requireNonNull() 方法来确保对象不为 null,或者使用简单的条件语句进行判断。以下是两种可能的解决办法:

    1. 使用 Objects.requireNonNull()
    public void yourMethod(Short gender) {
        Short validatedGender = Objects.requireNonNull(gender, "Gender cannot be null");
        // 然后在这里安全地使用 validatedGender,例如:
        int value = validatedGender.shortValue();
        // ... 其他操作 ...
    }
    
    1. 使用简单的条件语句:
    public void yourMethod(Short gender) {
        if (gender != null) {
            int value = gender.shortValue();
            // ... 在这里执行其他操作 ...
        } else {
            throw new IllegalArgumentException("Gender cannot be null");
        }
    }
    

    在这两个例子中,如果 gendernull,程序会在尝试访问其 shortValue() 方法之前抛出异常,从而避免了 NullPointerException

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月29日
  • 已采纳回答 5月29日
  • 创建了问题 5月29日

悬赏问题

  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥15 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环