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

Java中addInterest方法添加Interest对象到链表时构造方法报错求助

问题核心报错原因

  • Interest类的构造方法定义错误:Java中构造方法不能有返回值类型声明,你给构造方法加了void,导致它变成了普通成员方法,而非类的构造方法,且你定义的这个方法要求传入String和int两个参数,调用时没有传参自然会报参数不匹配的错误。
  • 构造方法逻辑矛盾:你定义构造方法时预留了topic和level两个参数,但方法内部没有使用传入的参数,反而直接通过Scanner读取用户输入,逻辑冗余。
  • addInterest方法逻辑错误:方法接收了Interest类型的参数后直接用new Interest()覆盖了传入的对象,后续又尝试把普通方法当构造方法调用,逻辑完全混乱。
  • 不要在构造方法里随意关闭Scanner:如果你关闭了包装System.in的Scanner,后续整个程序都无法再读取控制台输入,因为System.in会被连带关闭。

修复方案

第一步:修复Interest类

你可以选择两种实现方式,按需选择即可:

方式1:构造方法内直接读取用户输入(不需要传参)

public class Interest extends Member implements Serializable {
    private String topic;
    private int level;

    // 去掉void,无参构造方法,内部处理用户输入
    public Interest() {
        Scanner in = new Scanner(System.in);
        System.out.print("Topic: ");
        this.topic = in.nextLine();
        System.out.println("Level (1 - 10): ");
        this.level = in.nextInt();
        // 不要关闭in,避免System.in被连带关闭
    }

    // 可选:添加getter方法方便后续读取属性
    public String getTopic() {
        return topic;
    }

    public int getLevel() {
        return level;
    }
}

方式2:构造方法通过传参赋值,输入逻辑放到外层(解耦更合理)

public class Interest extends Member implements Serializable {
    private String topic;
    private int level;

    // 去掉void,构造方法接收参数赋值
    public Interest(String topic, int level) {
        this.topic = topic;
        this.level = level;
    }

    // getter方法同上
}

第二步:修复addInterest方法

对应上面的两种Interest实现,选对应的修改即可:

对应方式1的addInterest实现

public void addInterest() {
    // 直接创建Interest实例,构造方法会自动触发用户输入
    Interest interest = new Interest();
    topics.add(interest);
}

调用时直接调用无参的addInterest()即可,不需要传参数。

对应方式2的addInterest实现

public void addInterest() {
    Scanner in = new Scanner(System.in);
    System.out.print("Topic: ");
    String topic = in.nextLine();
    System.out.println("Level (1 - 10): ");
    int level = in.nextInt();
    // 传入读取到的参数创建Interest实例
    Interest interest = new Interest(topic, level);
    topics.add(interest);
}

这种方式把输入逻辑和实体类拆分,后续复用Interest类时更灵活,更推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:15:04