在编写返回cat的arrayList的方法时,以下哪项是正确的。
public List getCatsByCatHerderID(int id);
public ArrayList<Cat> getCatsByCatHerderID(int id);
public List<Cat> getCatsByCatHerderID(int id);
答案 0 :(得分:4)
List<Cat>
是最佳选择。首先,它将接口声明为返回值,因此您可以稍后修改实现,例如从ArrayList切换到其他位置。其次,它使用泛型,它总是更好,因为它使值类型安全。
答案 1 :(得分:2)
第三个。
第一个是糟糕的,因为它会强制你的API用户投射List条目,他可能会选择将它们转换为(Dog)给你所有人。
第二个是糟糕的原因如果Java在1.7中提出了SuperFastList,你想用它代替ArrayList吗?
答案 2 :(得分:1)
public List<Cat> getCatsByCatHerderID(int id);
第三种方法,因为您只处理列表中定义的方法,而不必担心方法返回的列表类型。此外,如果您要使用Web服务,第3种方法是可以的,因为在Web服务中比List
更好地理解ArrayList
(假设.NET有ArrayList
?)
如果确实想要返回ArrayList
,那么:
public ArrayList<Cat> getCatsByCatHerderID(int id);