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

Java调用getName方法无法显示对象数组中存储的Baby姓名问题求助

问题原因

你无法正常输出数组中存储的姓名,核心问题是Baby实体类的setName()方法存在逻辑错误:

  1. 仅对空输入的情况写了赋值逻辑,合法输入的姓名完全没有赋值给类的name属性,导致输出时始终显示默认构造方法初始化的Baby
  2. 空输入分支的逻辑顺序错误,先设置了默认值"Baby",又马上用空的输入值覆盖了默认值,空值校验完全失效

修复代码

直接替换Baby类中的setName()方法即可:

public void setName(String name) {
    // 校验输入是否为null、空或全为空白字符
    if (name == null || name.trim().isEmpty()){
        this.name = "Baby";
    } else {
        // 合法输入正常赋值
        this.name = name;
    }
}

可选优化

你当前的equals()方法没有做类型和空值校验,传入非Baby类型的参数时会抛出类型转换异常,建议优化为以下版本:

@Override
public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;
    Baby baby = (Baby) obj;
    return age == baby.age && name.equalsIgnoreCase(baby.name);
}

修复完成后重新运行代码,输入的姓名就能正常存入数组并在输出环节展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:27:02