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

如何在Java程序中获取Null值?解决构造器报错并实现目标输出

解决Java构造器缺失报错并实现指定输出

报错原因

代码中自定义了两个带参构造器后,Java不再自动提供默认的无参构造器,但main方法里调用了new Home()(无参实例化),导致编译器找不到匹配的构造器,触发报错。

修改后的完整代码

package home;

public class Home {
    String HomeName = null;
    int room = 0;
    int kitchen = 0;
    int bathroom = 0;

    // 添加无参构造器
    Home() {}

    // 单参数构造器
    Home(String HomeName) {
        System.out.println(HomeName);
    }

    // 四参数构造器
    Home(String HomeName, int rooms, int k, int bathroom) {
        System.out.println(HomeName + ":rooms:" + rooms + ":kitchen" + k + ":bathroom" + bathroom);
        this.HomeName = HomeName;
        this.room = rooms;
        this.kitchen = k;
        this.bathroom = bathroom;
    }

    public void finaloutputhome() {
        System.out.println("Your Home Name:" + HomeName);
        System.out.println("Rooms Count:" + room);
        System.out.println("kitchen Count:" + kitchen);
        System.out.println("Bathroom Count:" + bathroom);
    }

    public static void main(String[] args) {
        // 先实例化四参数对象,触发要求的第一行输出
        Home obj1 = new Home("Pasindu's Home", 5, 2, 3);
        // 实例化无参对象,输出默认值
        Home obj2 = new Home();
        obj2.finaloutputhome();
    }
}

修改说明

  1. 添加无参构造器:补上Home() {},让main里的new Home()能正常创建对象
  2. 调整main方法逻辑:先创建带四个参数的Home对象,触发构造器内的打印语句,输出要求的第一行内容
  3. 保留成员变量默认值:原代码中HomeName默认赋值null,int类型变量默认0,无需修改,确保finaloutputhome()能输出指定的null和0值

运行后输出结果

Pasindu's Home:rooms:5:kitchen2:bathroom3
Your Home Name:null
Rooms Count:0
kitchen Count:0
Bathroom Count:0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:48:19