2014-03-24 48 views
0

在我開始討論我的問題之前,我真的很想讓某人給我一些具體的建議,因爲我一直在尋找很長時間,但似乎找不到正確的答案。 我知道這是基礎知識,但我有問題。 這是我在我的代碼:參考java中的對象數組

private Interface ClassName; //initializing class that implements interface 

public Interface methodName() { 
/*This is where I need to make arraylist of objects 
of my class and return whole class as reference, maybe something like this:*/ 
List<Interface> listName = new ArrayList<>(perhaps needs number of objects added?); 
listName.add(ClassName); 

return ClassName; //or however this should be done 

,我想一旦我打電話方法我可以簡單地使用listName.get(數字對象);

問題是,我只是簡單地返回列表作爲參考,但我的方法要求我只返回具有所述接口的類,我不知道如何引用我的類到該對象的特定數組列表並返回到我的方法。

謝謝你的時間。 我會嘗試用簡單的英語來解釋。 首先,這是一種安慰,所以我不能改變方法的給定方式。順便說一句,那些不是實際的變量名稱,只是名稱來澄清我所反對的。 這是說明: /** * *獲取當前計算機系統的{@link ISystemRegisters}對象。 * * * * @return代表系統寄存器的對象。 */public ISystemRegisters getRegisters();

所以我有不同的接口比ISystemRegisters和這個方法,它應該保存對象的數組列表(這裏是寄存器),然後返回該數組的對象引用,據我瞭解。

+6

遺忘代碼,你能用簡單的英語解釋你正試圖解決的實際問題嗎? –

+1

也是你的第一行不初始化任何東西...... – Lucas

+0

*似乎無法找出正確的答案*我不懷疑它,因爲沒有問號。 – Joffrey

回答

0

如果你想要做的是從你的方法返回列表,那麼你應該聲明你的方法是這樣的:

public List<Interface> methodName() { 
    ... 
    return listName; // instead of returning ClassName 
} 

隨着列表作爲返回類型。

旁註

  • 你的第一行是混亂的,你沒有任何初始化(由@Lucas指出的),而只是宣佈Interface類型的具有可變(此字段) ClassName作爲名稱(應改爲className)。

  • 不,您不需要指定列表創建時的項目數量。這與數組不同。

  • 您的變量名稱很混亂,如果以name結尾,人們會認爲該變量包含名稱。他們可能會認爲它們是String s。

+0

那麼你必須'返回listName;' – SebastianH

+0

@SebastianH是的,當然。我會澄清一點,謝謝你的評論。 – Joffrey