类中的方法不能应用于给定的类型(java)

时间:2013-09-08 07:12:52

标签: java class methods

我试图在我的main方法中使用另一个类的方法并且我得到一个错误。它告诉我类中的Method不能应用于给定的类型。

public class studentclass {
public void inputloop(String[] args){

    Scanner scan = new Scanner(System.in);
    String[][] student = new String[10][];
    Double[][] results = new Double[10][];
    Double[] total = new Double[10];


    String tableln = "";

   for(int index = 0; index < student.length; index++){
    System.out.println("\nPlease enter student " + (index+1) + "'s details");
    String userinput = scan.nextLine();
    student[index] = userinput.split(",");
    results[index] = new Double[4];

    results[index][0] = Double.parseDouble(student[index][2]); 
    results[index][1] = Double.parseDouble(student[index][3]);
    results[index][2] = Double.parseDouble(student[index][4]);
    results[index][3] = Double.parseDouble(student[index][5]);
    total[index] = (results[index][0]*0.1+results[index][1]*0.4+
                    results[index][2]*0.2+results[index][3]*0.3);

    System.out.println("\nStudent name\tFAN \t\tResult1\tResult2\tResult3\tResult4\tTotal");
    tableln = tableln + "\n" + student[index][0] + "\t" + student[index][1] + "\t"
             + results[index][0] + "\t" + results[index][1] + "\t" + results[index][2] + "\t"
             + results[index][3] + "\t" + total[index];
    System.out.println(tableln);
    }
}

然后在我的主要方法中输入此内容。

    public static void main(String[] args) {
    studentclass info = new studentclass();
    info.inputloop();
    }

它表示&#34;类studentclass中的方法inputloop不能应用于给定的类型。必需的字符串[]没有发现任何争论。&#34;请帮我。感谢

4 个答案:

答案 0 :(得分:3)

您的方法的签名是:

public void inputloop(String[] args)

您应该将一个字符串数组传递给方法:

info.inputloop(someStringArray);

有关详细信息,请参阅this

  

括号中的参数列表 - 以逗号分隔的输入列表   参数,以其数据类型开头,括在括号内,()。   如果没有参数,则必须使用空括号。

我没有看到您正在使用此参数,因此您只需将方法签名更改为

即可
public void inputloop()

现在它就像你做的那样是一个有效的电话。

答案 1 :(得分:1)

您的方法声明显示它希望传递对字符串数组的引用:

public void inputloop(String[] args)

因此,如果传入String[]类型的值,则只能以当前形式调用方法。

但是,你实际上并没有在方法的任何地方使用 args,所以我建议你只需将声明更改为:

public void inputloop()

我建议你阅读section on defining methods in the Java tutorial,或者在一本关于Java的好的入门书中找到一个关于声明(和调用)方法的部分。如果您目前没有从中学习Java的书,我建议您尽快掌握。虽然Stack Overflow非常适合回答特定问题,但它对于学习基本概念并不好 - 对于声明和调用方法而言,批次任何中的答案要多。这个特殊的问题,一次一点一点地学习它是非常低效的。

答案 2 :(得分:0)

当方法应该获取字符串数组时,您正尝试使用inputloop

我猜这个想法是将命令行args传递给它。做:

public static void main(String[] args)
{
   studentclass info = new studentclass();
   info.inputloop(args);
}

答案 3 :(得分:0)

试试这个

public static void main(String[] args) {
    studentclass info = new studentclass();
    String[] student ={"John", "Mark"};
    info.inputloop(student);
    }
} 

您可以将public void inputloop(String [] args)更改为 public void inputloop()作为输入参数从不使用