“main”java.lang.error不适用于参数

时间:2014-10-23 14:50:44

标签: java methods compilation arguments

我究竟如何修复此错误?

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method methodName(className[], String, int) in the type Program is not applicable for the arguments ()

    at Program.main(Program.java:43)

我的代码片段,调用方法:

public class Program {
  public static void main(String[] args) throws FileNotFoundException {
    methodName();
  }
}

methodName代码:

public static void methodName(className[] array, String stringName, int counter){
 //Code here
}

2 个答案:

答案 0 :(得分:0)

您需要根据您现在未传递的methodName传递参数。

答案 1 :(得分:0)

您已声明methodName为3个参数,这意味着每当您调用它时,您必须传递三个参数,否则您将收到此错误。原因是方法名称以及参数列表及其类型构成了所谓的方法签名,它唯一地标识了方法。

如果你试图在没有传递参数的情况下调用methodName(),那么你实际上是在寻求一种不同的方法签名,在这种情况下是一种不存在的方法签名,这就是出错的地方。有两种方法可以解决这个问题:

实施methodName()

您可以为methodName()编写一个完全没有参数的定义:

public static void methodName()
{
    // Code that does not require any parameters
}

然后当你致电methodName()时,你会得到你在这里写的代码。

致电methodName(arg1, arg2, arg3)

如果您实际传递了methodName所有三个参数,您将获得标有“// Code here”的代码。还要确保你不只是传递任何类型的三个参数,但具体是

className[] arg1;
String arg2;
int counter;

// Initialize the values to whatever you want

methodName(arg1, arg2, arg3);

这将按照您的预期运行。