編寫返回cat的arrayList的方法時,以下哪項是正確的。我是否應該將接口聲明爲返回值或實現作爲返回值?
public List getCatsByCatHerderID(int id);
public ArrayList<Cat> getCatsByCatHerderID(int id);
public List<Cat> getCatsByCatHerderID(int id);
編寫返回cat的arrayList的方法時,以下哪項是正確的。我是否應該將接口聲明爲返回值或實現作爲返回值?
public List getCatsByCatHerderID(int id);
public ArrayList<Cat> getCatsByCatHerderID(int id);
public List<Cat> getCatsByCatHerderID(int id);
List<Cat>
是最好的選擇。首先,它將一個接口聲明爲一個返回值,因此您可以稍後修改實現,例如從ArrayList切換到其他。其次,它使用泛型,它總是更好,因爲它使值類型安全。
public List<Cat> getCatsByCatHerderID(int id);
第三種方法,因爲您只處理列表中定義的方法,不用擔心該方法返回的列表類型。另外,如果你要使用Web服務,第三個方法是確定的,因爲List
更好地在Web服務中瞭解比ArrayList
(想像一下ArrayList
.NET?)
如果你真的想返回ArrayList
,然後這個:
public ArrayList<Cat> getCatsByCatHerderID(int id);
第三個。
第一個是壞的,因爲它會迫使你的API的用戶投入列表條目,他可能會選擇將它們投射到(狗)爲你現在的所有。
第二個不好的原因如果Java在1.7中出現SuperFastList,並且您想要使用它而不是ArrayList?
感謝您的編輯。我正在尋找描述所有這些的東西,但沒有標記它一百萬次。就是這樣。 – davidahines 2011-03-31 18:06:25