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

Controller类报隐式超类Object构造函数未定义错误如何解决

问题说明

编写Spring项目Controller控制器类时,编译阶段抛出如下错误:

Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor

对应问题代码如下:

@RestController
public class EmployeeController {

    @Autowired
    private EmployeeService es;

    @RequestMapping(value="/{id}", method=RequestMethod.GET)    
    public Employee getEmployeeByID(@PathVariable Long id) {
        return es.getEmployeeByID(id)
                .orElseThrow(() -> new ResourceNotFoundException("User not found with id :" + id));
    }
}
报错根因

这个报错和贴出的Controller业务逻辑本身无关,核心是编译器无法识别Java基础类java.lang.Object的默认无参构造函数,常见触发场景如下:

  • IDE关联的项目JDK/JRE配置错误、路径失效,或者选用的运行环境版本不匹配
  • 项目构建路径损坏,系统自带的JRE核心类库没有被正确加载到编译路径中
  • 项目存在其他编译错误(比如自定义异常类ResourceNotFoundException语法错误、缺失构造函数),连带触发该假报错
  • Maven/Gradle依赖拉取不全,项目构建缓存损坏
修复方案

按优先级依次排查:

  • 修正项目JDK配置
    • Eclipse/STS环境:右键项目选择Build Path -> Configure Build Path,在Libraries标签页移除当前报错的JRE System Library,重新添加本地安装的对应版本JDK(不要使用独立的JRE运行环境),保存后执行Project -> Clean清理项目重新编译
    • IDEA环境:打开File -> Project Structure -> Project Settings -> Project,确认SDK选择为本地正确安装的JDK版本,同时检查Modules标签下的SDK配置与项目保持一致,确认后执行Build -> Rebuild Project重新构建
  • 刷新构建依赖
    Maven项目右键选择Maven -> Update Project,勾选强制更新快照/发布版本选项,等待依赖更新完成后重新编译;Gradle项目在项目根目录执行./gradlew clean build命令清理缓存重新构建
  • 排查关联自定义类
    检查代码中引用的ResourceNotFoundException、EmployeeService等自定义类,确认类本身无语法错误、构造函数定义正常,可以独立编译通过
  • 校验导入语句
    确认Controller类中所有Spring相关注解、自定义类的import导入语句完整无缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:01:10