在VS Code中编辑Java工程时出现的Implicit super constructor Object() is undefined for default constructor问题

本文解决了一个在VSCode中遇到的JDK配置问题,由于系统变量未按JAVA_HOME命名,导致VSCode无法识别JDK路径。通过将自定义的JAVA版本系统变量名更改为JAVA_HOME,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实际上,这是一个JDK配置路径的问题。

另一篇博客中,博主给出了一个解决答案,与我的情况不符,因为那是Eclipse上的解决方案。

后来到VS Code中的Java配置文件中看一下,发现JDK的路径是“自动寻找”的,也即是,VS Code是通过系统path来寻找JDK的路径。而且它特别固执地只寻找命名为JAVA_HOME的参数配置!!!

要知道!为了适应不同版本的项目,我电脑上可是装了两个JDK!!一个是8,另一个是11。而且为了方便切换,我用JAVA8_HOMEJAVA11_HOME进行区别!!

而之所以VS Code里面识别不了JDK路径,是因为这两个系统变量命名都不是严格的“JAVA_HOME”!!!

坑爹啊!后来把JAVA11_HOME(看情况,想改8版本的也可以)改为JAVA_HOME的命名,问题就解决了。

这个错误信息"Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor"通常出现在Java编程中。它表示编译器在尝试创建类的默认构造函数遇到了问题。让我们详细解释一下这个错误以及如何解决它: 1. 原因: 这个错误通常发生在以下情况: - 你定义了一个没有显式构造函数的有继承关系的类。 - 父类没有默认构造函数(没有参数的构造函数)。 2. 解释: - 在Java中,每个类都直接或间接继承自Object类。 - Object类有一个默认构造函数。 - 当你创建一个没有显式构造函数的子类,编译器会尝试创建一个默认构造函数,并在这个构造函数中调用父类的默认构造函数。 3. 解决方法: - 为你的类显式定义一个构造函数,并在其中调用父类的构造函数。 - 如果你不需要特殊的构造函数逻辑,可以定义一个简单的构造函数,如: ```java public class MyClass extends ParentClass { public MyClass() { super(); } } ``` - 如果父类有参数化的构造函数,确保在子类的构造函数中正确传递参数。 4. 示例: ```java public class Parent { public Parent(int x) { // 父类构造函数 } } public class Child extends Parent { public Child() { super(10); // 调用父类的构造函数并传递必要的参数 } } ``` 在上面的例子中,`Child`类必须调用`Parent`类的构造函数,因为`Parent`类没有默认构造函数。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值