【发布时间】:2013-08-22 03:58:14
【问题描述】:
这样的代码我见过很多次了:
List<String> list = new ArrayList<String>();
为什么人们取ArrayList(和其他类)的父类而不是生成对象的类型?
这会降低性能吗?或者为什么有人要这样做?
【问题讨论】:
-
对“性能”的执着是什么? 90% 的时间,这是编写代码中最不重要的方面!
-
如果我在程序中看不到某件事的原因,我还应该问什么?我不会说获取父引用会为您提供更“可读”的代码。 :) 但现在我有了答案,谢谢大家。
-
@TrudleR:它传达意图:
List x = new ArrayList()意味着您实际上并不需要ArrayList的任何特殊功能,您“承诺”“仅”使用 @987654327 公开的功能@ 界面。更进一步的是Collection x = new ArrayList()甚至Iterable x = new ArrayList()。