Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有特定数量引用的数组能否作为参数传递给函数?_Java_Arrays_Methods_Parameters - Fatal编程技术网

Java 具有特定数量引用的数组能否作为参数传递给函数?

Java 具有特定数量引用的数组能否作为参数传递给函数?,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

如果我想向一个方法传递特定数量的引用,我该怎么做

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 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++;
    }
}