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