如果我想将特定数量的引用传递给某个方法,我该怎么做?可以将具有特定数量引用的数组作为参数传递给函数吗?
例如
public void getArr(CP[] c,String t)
{
for(int i=0;i<c.length;i++)
{
cp[nr]=c[nr];
nr++;
}
}
我想例如我的方法采取3个引用到CP对象的完全数组;我怎样才能指定在方法中?
如果我想将特定数量的引用传递给某个方法,我该怎么做?可以将具有特定数量引用的数组作为参数传递给函数吗?
例如
public void getArr(CP[] c,String t)
{
for(int i=0;i<c.length;i++)
{
cp[nr]=c[nr];
nr++;
}
}
我想例如我的方法采取3个引用到CP对象的完全数组;我怎样才能指定在方法中?
在java中不可能,因为数组的长度不是其类型的一部分。您可以在运行时用支票变通办法:
public void getArr(CP[] c,String t)
{
if (c.length != 3) {
throw new IllegalArgumentException("Required exactly 3 array elements");
}
for(int i=0;i<c.length;i++)
{
cp[nr]=c[nr];
nr++;
}
}
或者与assert
:
public void getArr(CP[] c,String t)
{
assert c.length == 3 : "Required exactly 3 array elements";
for(int i=0;i<c.length;i++)
{
cp[nr]=c[nr];
nr++;
}
}
这是不可能在Java中。
CP[]
是类型对于c
;数组的特定大小不构成类型的一部分。所以你不能导致编译时失败。
如果您不想依赖运行时检查,为什么不通过CP c1, CP c2, CP c3
而是在呼叫站点分解阵列?
数组长度不属于该类型的一部分,因此无法通过方法签名强制执行。你可以有3个参数。但我想你想要的东西不那么笨重。 –
是的:)。它可以用集合来完成吗? – Daniel
只有您拥有专门设计用于容纳3个元素的自定义集合。同样,大小不是集合类型的一部分。 –