如果我想將特定數量的引用傳遞給某個方法,我該怎麼做?可以將具有特定數量引用的數組作爲參數傳遞給函數嗎?
例如
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個元素的自定義集合。同樣,大小不是集合類型的一部分。 –