可以将特定数量的引用数组作为参数传递给函数吗?

时间:2016-07-05 07:19:19

标签: java arrays methods parameters

如果我想将特定数量的引用传递给方法,我该怎么办?

e.g。

public void getArr(CP[] c,String t)
{
    for(int i=0;i<c.length;i++)
    {
        cp[nr]=c[nr];
        nr++;
    }
}

我希望我的方法能够准确地获取3个对CP对象的引用数组;如何在方法中指定它?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

这在Java中是不可能的。

CP[]c类型;数组的特定大小不构成该类型的一部分。所以你不能引发编译时失败。

如果您不想依赖运行时检查,为什么不通过CP c1, CP c2, CP c3而是在呼叫站点分解阵列?