List<T>是interface,哪里
ArrayList<T>是class,并且此类实现
List<T>接口。
我希望使用第二种形式,这种形式更通用,即如果您不使用特定于方法的方法,则
ArrayList<T>可以将其类型声明为接口
List<T>类型。使用第二种形式,将实现从实现更改
ArrayList<T>为实现
List<T>接口的其他类将变得更加容易。
编辑:
由于许多SO用户都评论了这两种形式都可以是接受
List<T>或的任何方法的参数
ArrrayList<T>。但是当我声明方法时,我更喜欢接口:
void showAll(List <String> sl) ...
并使用:
void showAllAS(ArrayList <String> sl) ...
仅当我的方法使用特定于的方法时
ArrayList<T>,例如
ensureCapacity()。
我们应该使用类型化
List<T>而不是类型化的信息的响应
List非常好(当然,如果我们不使用古老的Java)。



