构造函数类不能应用于给定类型

时间:2014-06-10 17:41:30

标签: java constructor

当我尝试编写包含main()的类时,为什么会出现此错误?

Driver.java:7: error: constructor NameParser in class NameParser cannot be applied to given types;  NameParser nameParser = new NameParser(args[0], args[1]);

  required: no arguments

  found: String,String

  reason: actual and formal argument lists differ in length
import parsing.*;
public class Driver {
    public static void main(String args[]) {
        NameParser nameParser = new NameParser(args[0], args[1]);
    }
}
package parsing;
public class NameParser {
    public static void NameParser(String nameTable, String tokenTable)  {
        .
        .
    }
}

4 个答案:

答案 0 :(得分:1)

你的构造函数不正确,应该是

public NameParser(String nameTable, String tokenTable)  {
.
.
}

答案 1 :(得分:1)

构造函数没有返回类型。你的构造函数应该是:

public NameParser(String nameTable, String tokenTable) {

}

您尝试定义的那个实际上是一个static方法(方法),因为static修饰符和返回类型{{1} }(这意味着它不会返回任何内容)。

另外,你得到的错误是因为在行

void

您正在调用一个不存在参数NameParser nameParser = new NameParser(args[0], args[1]); 的构造函数。

答案 2 :(得分:1)

public static void NameParser(String nameTable, String tokenTable)不是构造函数。它只是一个带有void返回类型的静态方法。

您应该按如下方式定义构造函数:

public NameParser(String nameTable, String tokenTable)

答案 3 :(得分:0)

构造函数不应该有返回类型和 name应与类名相同。

在你的情况下

NameParser(String nameTable, String tokenTable)
 {

    //some logic will be here

   }