0

我正在尝试在我的主要方法中使用另一个类的方法,但我遇到了错误。它告诉我类中的方法不能应用于给定的类型。

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();
    }

它说“类 studentclass 中的方法 inputloop 不能应用于给定类型。所需的 String [] 没有发现争论。” 请帮我。谢谢

4

4 回答 4

3

您的方法的签名是:

public void inputloop(String[] args)

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

info.inputloop(someStringArray);

有关更多信息,请参见:

括号中的参数列表 — 输入参数的逗号分隔列表,前面是它们的数据类型,用括号 () 括起来。如果没有参数,则必须使用空括号。

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

public void inputloop()

现在这将是一个有效的调用,就像你所做的那样。

于 2013-09-08T07:14:20.623 回答
1

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

public void inputloop(String[] args)

因此,如果您传入 type 的值,则只能以其当前形式调用该方法String[]

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

public void inputloop()

我建议你阅读Java 教程中关于定义方法的部分,或者在一本很好的 Java 入门书籍中找到关于声明(和调用)方法的部分。如果你目前没有一本学习 Java 的书,我建议你尽快找到一本。虽然 Stack Overflow 非常适合回答特定问题,但它不适合学习基本概念 -声明和调用方法比这个特定问题的任何答案中存在的多得多,并且一点点地学习所有这些时间非常低效。

于 2013-09-08T07:15:59.053 回答
0

您正在尝试使用inputloop该方法何时应该获取字符串数组。

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

public static void main(String[] args)
{
   studentclass info = new studentclass();
   info.inputloop(args);
}
于 2013-09-08T07:14:57.927 回答
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() 因为输入参数从未使用过

于 2013-09-08T07:20:37.933 回答