使用接口或类型在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