让我们通过示例及其超级简单来了解区别
mymethod(String... str)
vs
mymethod(String []str)
方法 getid 采用 int 类型数组。
因此,如果我们调用 getId 方法,我们需要传递数组。
要传递数组,我们可以创建匿名数组,或者只是先创建一个数组并像我在下面的示例中那样传递。
class test
{
public void getid(int []i)
{
for(int value:i)
{
System.out.println(value);
}
}
public static void main(String []arg)
{
int []data = {1,2,3,4,5}
new test().getid(data);
}
}
下面我们使用三点 -> mymethod(int... i)
现在该方法仍然需要数组,但不同的是现在我们可以将值直接传递给该方法,并且“...”会自动将其转换为数组
看下面的例子
class test
{
public void getid(int ...i)
{
for(int value:i)
{
System.out.println(value);
}
}
public static void main(String []arg)
{
new test().getid(1,2,3,4);
}
}
使用“...”而不是“[]”的优势
1) 节省内存:-
在示例一中使用 mymethod(int [ ] )
当我们在主方法“Data[]”中创建一个数组时,它们会创建新对象并在内存中获得空间
以及当我们创建方法并在那里定义参数时:-
getid(int []) -> 这将在内存中创建另一个对象,因此我们在内存中有 2 个彼此相同的对象
2)使用“...”时您不能传递任何内容
在示例 2 中,您可以在调用“getid”方法时不传递任何内容,它们将正常工作而不会出现任何错误,这对于使程序更稳定非常有帮助,例如
.
.
.
public static void main(String []arg)
{
new test().getid();
}
.
.
.
但是如果我们调用“getid”方法并且在使用“[]”时没有传递任何参数,那么它会在编译时显示错误