2016-07-05 43 views
1

如果我想將特定數量的引用傳遞給某個方法,我該怎麼做?可以將具有特定數量引用的數組作爲參數傳遞給函數嗎?

例如

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

我想例如我的方法採取3個引用到CP對象的完全數組;我怎樣才能指定在方法中?

+0

數組長度不屬於該類型的一部分,因此無法通過方法簽名強制執行。你可以有3個參數。但我想你想要的東西不那麼笨重。 –

+0

是的:)。它可以用集合來完成嗎? – Daniel

+0

只有您擁有專門設計用於容納3個元素的自定義集合。同樣,大小不是集合類型的一部分。 –

回答

0

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

這是不可能在Java中。

CP[]類型對於c;數組的特定大小不構成類型的一部分。所以你不能導致編譯時失敗。

如果您不想依賴運行時檢查,爲什麼不通過CP c1, CP c2, CP c3而是在呼叫站點分解陣列?

相關問題