我正在查看java代码并看到了使用
...
我认为它是[]
以下是使用...
的示例:
public StudentData(String firstName,String lastName,double ... list)
{
// initialise instance variables
this.firstName = firstName;
this.lastName = lastName;
this.testScores = testScores;
this.grade = grade;
grade = courseGrade(list); //calc
}
以下是没有它的示例:
public StudentData(String firstName,String lastName,double [] list)
{
// initialise instance variables
this.firstName = firstName;
this.lastName = lastName;
this.testScores = testScores;
this.grade = grade;
grade = courseGrade(list); //calc
}
我尝试在我的代码中使用它,它解决了我之前遗留下来的一些错误消息。您能否解释一下...
与[]
答案 0 :(得分:1)
由于Java5我们有一个名为变量参数的新功能,它有助于发送n个相同类型的参数,但是catch应该始终位于参数列表的末尾。如果您想了解更多信息,可以查看有关varargs的文档。
答案 1 :(得分:1)
之间的唯一区别
public StudentData(String firstName,String lastName,double ... list)
和
public StudentData(String firstName,String lastName,double [] list)
是后者,调用者必须实例化一个数组并将其作为参数提供。在前者中,参数自动放入数组中。这称为varargs。
答案 2 :(得分:0)
这些被称为" varargs"。它基本上是数组[]
的替代,允许您将任意数量的参数传递给方法,这些参数会自动转换为指定类型的数组。
请参阅以下示例:
import java.util.Arrays;
public class Varargs {
public static void main(String[] args) {
foo();
bar(new String[0]);
foo("foo");
bar(new String[] { "foo" });
foo("foo", "bar");
bar(new String[] { "foo", "bar" });
}
public static void foo(String... strings) {
System.out.println(Arrays.toString(strings));
}
public static void bar(String[] strings) {
System.out.println(Arrays.toString(strings));
}
}
输出:
[]
[]
[foo]
[foo]
[foo, bar]
[foo, bar]