我试图在我的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;请帮我。感谢
答案 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()作为输入参数从不使用