2013-10-04 159 views
0

這是我的類ListOfLists的代碼。構造函數應該創建一個NameList類型的數組。陣列類型混淆?

public class ListOfLists { 
private int capacity; 
private NameList[] listOfLists; 
private int size = 0; 

public ListOfLists(int capacity) { 
    listOfLists = new NameList[capacity]; 
} 

我NameList中類看起來是這樣的..

public class NameList{ 
    public NameList(String initial){ 
    i = initial; 
    } 
    public void add(String data){ 
    ... 
    } 

如果我做出ListOfLists稱爲k的主要一個新的對象..

ListOfLists k = new ListOfLists(5); 

爲什麼我不能做..

k.add("Whatever") ? 

我ge t的誤差.. 類型的表達式必須是一個數組類型,但它決心ListOfLists

+2

您正在對'ListOfLists'類型的引用調用'add'。那種類型是否聲明瞭一個'add'方法? –

+1

給我們所有的相關代碼,我們看不到'add()'方法是如何實現的,或者'NameList'中的'i'是什麼。 –

+0

add方法屬於NameList。您有兩個選項,在ListOfLists內部創建代理添加方法,或者擴展NameList。 – BlackBox

回答

1
How come I cannot do.. 

,因爲你沒有add方法ListOfLists類。

如果你想使用NameList類的add方法然後得到的listOfLists值是NameList類型,然後添加Whatever

0

k這是類型ListOfLists是你自己寫的東西,並沒有擴展任何東西。如果您沒有編寫add方法,則無法調用它。如果您想要一個也有其他屬性的列表,請嘗試在您的ListOfLists類中延伸ArrayList