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

Java程序调用Student构造器报错NoSuchMethodError问题求助

构造方法错误:NoSuchMethodError 排查与解决

错误信息

Exception in thread "main" java.lang.NoSuchMethodError: 'void Student.(int, java.lang.String)'
at oops5.main(oops5.java:18)

核心问题

你在oops5.java第18行调用了Student(int, String)构造方法,但你的Student类中未定义该参数类型及顺序的构造方法,或是存在编译/代码不匹配问题。

常见原因及解决办法

  • 缺少对应构造方法
    如果Student类里只定义了无参构造或其他参数的构造,就会触发这个错误。直接在Student类中添加匹配的构造方法即可:

    public class Student {
        // 根据实际需求定义类成员变量
        private int id;
        private String name;
    
        // 添加与调用逻辑匹配的构造方法
        public Student(int id, String name) {
            this.id = id;
            this.name = name;
        }
    }
    
  • 构造方法参数类型/顺序不匹配
    比如你定义的构造方法是Student(String name, int id),但调用时传的是new Student(1, "张三"),参数顺序颠倒就会报错。解决方式:要么调整调用时的参数顺序,要么修改构造方法的参数顺序以匹配调用逻辑。

  • 构造方法名或类名拼写错误
    构造方法名必须和类名完全一致(包括大小写),比如类名是Student,构造方法写成studnet就会失效。检查并修正拼写即可。

  • 编译文件未更新
    如果修改了Student类但未重新编译,运行时会加载旧的class文件,导致构造方法不匹配。重新编译所有相关类:

    javac Student.java oops5.java
    

    之后再运行程序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:36:09