当前位置: 首页 > 知识库问答 >
问题:

给定类型无法应用Java构造函数

齐承运
2023-03-14

我有一个主类,DataManager,它有一个子类FileHandler,它扩展了DataManager。

public class DataManager{
protected File file;
private FileHandler fileHandler;

public DataManager(File fileIn) {
    this.file = fileIn;
    fileHandler = new FileHandler(file);
}

//other class stuff}

另一类:

public class FileHandler extends DataManager {
    private File file;

    public FileHandler() {
        this.file = file;
    }

    //other class stuff }

我遇到了一个错误,指出构造函数不能应用于给定类型。这是我第一次在Java中使用继承,这个问题对我来说并没有太大帮助。

下面是我从NetBeans获得的更具体的版本...

“DataManager类中的构造函数DataManager不能应用于给定类型;必需:找到文件:无参数原因:实际参数和正式参数列表长度不同”

共有2个答案

山疏珂
2023-03-14

创建另一个构造函数。.beascausenewFileHandler(file)编译器知道一个参数构造函数不存在于FileHandler

public class FileHandler extends DataManager {
    private File file;

    public FileHandler() {

    }

    public FileHandler(File file) {
        this.file = file;
    }
}
柳仲卿
2023-03-14

FileHandler() 隐式调用其父级的构造函数:super()。

super()期望找到一个不带参数的构造函数。但是,在需要文件的父级上只有一个构造函数。

请参阅以下内容:

    < Li > Java中的super() < li >何时使用super()?

要修复错误,请调用:super(file)

您的代码应该是:

import java.io.File;

    public class DataManager {

    protected File file;

    public DataManager(File fileIn) {
        this.file = fileIn;
    }
}

// -------------

import java.io.File;

public class FileHandler extends DataManager {

    public FileHandler(File file) {
        super(file);
    }
}
 类似资料:
  • 我有2个子类:职员、学生,他们属于超类人。 以下是我的老师给出的代码(任务): 我不知道我可以输入什么来创建一个没有参数的对象。它总是出现这样的错误:Person类中的构造函数Person不能应用于给定的类型;必选:java.lang.String,int 我在网上查过,有两种方法可以解决这个问题: > < li> 在超类中添加默认值:< code > Person()//不带参数。 在子类学生中

  • 问题内容: 我有以下Java代码: 而且我不断收到错误消息:“无法将构造函数应用于给定类型” …这是否意味着超类的子类在构造函数中必须具有与超类相同数量的参数?我已经把头撞在墙上一个小时了。 问题答案: 子类不必有“相同数量的构造为超参数”任何构造函数,但它 确实 需要调用一些它的父类的构造函数从自己的构造。 如果超类具有no- arg构造函数,则默认情况下会被调用,如果省略了对超类构造函数的显式

  • 在问我的问题之前,我想把一些事情说清楚。首先,我是Java和编程的新手。第二,这是我的第一个帖子,所以如果我做错了什么,请宽容对待我。最后,我不想要任何具体的解决办法,我的任务在任何回应这篇文章。这些问题要我来解决。我想要的是一个解释,为什么我的测试代码不能编译/运行。为了更好地理解这个问题,我将粘贴赋值信息,然后是给定的驱动程序类,然后是驱动程序类访问的我的类代码。我的编译器错误显示在标题中,但

  • 我得到了下面的代码,使用数组来查找一些prim数。然而,当试图编译我的用户类PalindromeArrayUser时,它说——“类中的构造函数不能应用于给定的类型” 要求:int。找到:没有论点。原因:实际参数和正式参数列表的长度不同。 但是,我已经向构造器传递了一个int值(与我的蓝图中设计的方式相同)。我不太明白问题来自哪里。谢谢。 这是我的两节课 而这就是我的用户类问题的来源。上面的类编译良

  • 我正在做作业,所以我只想修复我的编译错误,这样我就可以继续工作了。我需要创建一个PointList类,在ArrayList中保存一个Point对象列表。PointList类应该接受任何作为Point类实例或Point子类的对象。 我不断收到一个编译器错误,上面写着 我真的不明白我错过了什么,我已经通读了这本书,似乎不明白为什么我会得到这个错误。我已经制作了 Point 类并完成了测试,但似乎无法编

  • 我正在从一个教程中重构下面的代码。当我< s >运行编译它时,我得到以下错误: Vierbeiner类中的构造函数Vierbeiner不能应用于给定类型;必需:java.lang.找到字符串:无参数原因:实际参数列表和正式参数列表长度不同 我的理解是,发生这个错误是因为父类Vierbeiner有一个需要字符串参数的构造函数,而没有一个不需要参数的构造函数。我不明白的是,为什么我在没有创建Hund类