Java 具有特定数量引用的数组能否作为参数传递给函数?
如果我想向一个方法传递特定数量的引用,我该怎么做 e、 gJava 具有特定数量引用的数组能否作为参数传递给函数?,java,arrays,methods,parameters,Java,Arrays,Methods,Parameters,如果我想向一个方法传递特定数量的引用,我该怎么做 e、 g public void getArr(CP[]c,字符串t) { 对于(int i=0;i在java中是不可能的,因为数组的长度不是其类型的一部分。您可以在运行时通过检查来解决此问题: public void getArr(CP[] c,String t) { if (c.length != 3) { throw new IllegalArgumentException("Required exactly 3 a
public void getArr(CP[]c,字符串t)
{
对于(int i=0;i在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++;
}
}
这在Java中是不可能的
CP[]
是c
的类型;数组的特定大小不构成该类型的一部分。因此不能导致编译时失败
如果您不想依赖于运行时检查,为什么不通过CP c1、CP c2、CP c3
并在调用站点分解数组?数组长度不是类型的一部分,因此不能通过方法签名强制执行。您可以使用3个参数,但我想您需要的不是那么笨重的参数。是:)。是否可以对集合执行此操作?仅当您有一个专门设计用于容纳3个元素的自定义集合时。同样,大小不是集合类型的一部分。
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++;
}
}
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++;
}
}