使用接口或类型在Java中定义变量?

ArrayList aList = new ArrayList();

List aList = new ArrayList();

两者之间有什么区别,哪个更好使用?为什么?

回答:

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)。

以上是 使用接口或类型在Java中定义变量? 的全部内容, 来源链接: utcz.com/qa/414980.html

回到顶部