You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何检查方法形式参数是否为空或null?以display方法为例

没问题,咱们来拆解下怎么在Java里给你的display方法做参数检查。首先得明确:不同类型的参数,检查空/合法性的逻辑不一样,我给你分情况说明:

针对display方法的参数检查实现

首先要搞清楚:int和double是基本数据类型,它们不可能为null,也不存在“空”的概念(基本类型有默认值,int默认0,double默认0.0),所以我们主要检查它们的业务合理性;而String是引用类型,需要重点排查null或空字符串的情况。

1. 检查String name参数

需要同时判断是否为null,以及是否是空字符串(如果要排除全空格的无效输入,记得加trim()):

if (name == null || name.trim().isEmpty()) {
    throw new IllegalArgumentException("Name cannot be null or empty");
}

如果你的业务允许名字包含纯空格,可以去掉trim(),只判断name.isEmpty()。

2. 检查int age参数

基本类型不会为null,但要检查是否符合业务逻辑的合理范围,比如年龄不能为负数,也不能超过合理的人类年龄上限:

if (age < 0 || age > 150) {
    throw new IllegalArgumentException("Age must be between 0 and 150");
}

具体的范围可以根据你的业务需求调整(比如如果是儿童产品,上限可以设为18)。

3. 检查double percentage参数

同样是基本类型,重点检查业务合理性。比如百分比通常有两种形式,对应不同的判断逻辑:

// 如果是0-100的百分比形式(比如考试分数)
if (percentage < 0.0 || percentage > 100.0) {
    throw new IllegalArgumentException("Percentage must be between 0.0 and 100.0");
}

// 如果是0.0-1.0的小数形式(比如统计占比),就改成这个判断
// if (percentage < 0.0 || percentage > 1.0) {
//     throw new IllegalArgumentException("Percentage must be between 0.0 and 1.0");
// }

整合后的完整方法

把这些检查逻辑放进display方法里,最终代码如下:

public void display(String name, int age, double percentage) {
    // 校验name
    if (name == null || name.trim().isEmpty()) {
        throw new IllegalArgumentException("Name cannot be null or empty");
    }
    // 校验age
    if (age < 0 || age > 150) {
        throw new IllegalArgumentException("Age must be between 0 and 150");
    }
    // 校验percentage
    if (percentage < 0.0 || percentage > 100.0) {
        throw new IllegalArgumentException("Percentage must be between 0.0 and 100.0");
    }
    
    // 这里写你的业务逻辑
    System.out.println("Name: " + name + ", Age: " + age + ", Percentage: " + percentage);
}

额外小技巧

如果觉得手动写校验太繁琐,可以用第三方工具类简化,比如Apache Commons Lang的StringUtils,或者Spring的Assert类:

// 用StringUtils简化name的校验(需要引入依赖)
if (StringUtils.isBlank(name)) {
    throw new IllegalArgumentException("Name cannot be null or empty");
}

不过如果不想引入外部依赖,上面的原生写法已经足够可靠。

内容的提问来源于stack exchange,提问作者user8638451

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:20:55