【发布时间】:2011-04-02 09:10:32
【问题描述】:
我经常看到这种语法,但不明白其背后的原因。我认为您通常希望使用类而不是接口,以便更轻松地执行您可能想要执行的全部操作。
为什么这样做:
List<Foo> foo = new ArrayList<Foo>(something.getFoo());
而不是这个:
ArrayList<Foo> foo = new ArrayList<Foo>(something.getFoo());
当你以后想对 foo 执行操作时?如果 foo 由类 ArrayList 而不是接口 List 来表示,不是更容易吗?
【问题讨论】:
-
感谢您向我介绍panoply这个词:)
-
我曾经使用过的唯一对
ArrayList特殊的方法是removeRange。对于日常使用,List是字段/变量类型的最佳选择。
标签: java generics oop class interface