You need to enable JavaScript to run this app. Java中输入为空、空格或回车时如何让构造方法返回默认red值
优惠活动
大模型
产品
解决方案
定价
更多

Java中输入为空、空格或回车时如何让构造方法返回默认red值

问题原因

你当前代码的问题在于setColor方法没有对输入值做有效性校验,无论传入的字符串是空、全空格还是正常内容,都会直接覆盖成员变量color的原有值。用户按下回车时input.nextLine()返回的是空字符串"",输入全空格时返回的是对应长度的空白字符串,这两类值都会直接覆盖构造方法中初始化的默认值"red",最终输出空结果。

解决方案

对setColor方法增加输入有效性校验,只有当输入的是有效非空白内容时才更新颜色,否则保留原有默认值,修改后的代码如下:

修改后的实体类代码

public class Constructor_Object {
    private String color;
    
    // 无参构造方法
    public Constructor_Object(){
        color = "red";
    }

    public Constructor_Object(String color){
        // 构造方法复用setter的校验逻辑,避免重复代码
        this.setColor(color);
    }

    // 增加校验逻辑的setter
    public void setColor(String color){
        // 判断输入是否为null、空字符串、全空白字符串
        if (color == null || color.trim().isEmpty()) {
            // 无效输入时跳过赋值,保留原有默认值,也可以主动写this.color = "red"强制重置默认值
            return;
        }
        this.color = color;
    }

    public String getColor(){
        return color;
    }
}

效果说明

修改后:

  • 用户输入为空、全空格时,setColor会跳过赋值逻辑,保留构造方法初始化的默认值"red"
  • 用户输入有效颜色字符串时,才会更新为用户输入的内容
  • 有参构造方法复用了setter的校验逻辑,也能避免传入空值的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 17:00:04