请叫高手:一个基础问题

crkjqwm 2006-03-03 02:34:37

List contentIdList = new ArrayList();
ArrayList contentIdList = new ArrayList();
List contentIdList=null

上面三中定义的区别在那里?
...全文
104 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bysp 2006-03-03
  • 打赏
  • 举报
回复
study
crazycy 2006-03-03
  • 打赏
  • 举报
回复
(a)List contentIdList = new ArrayList();
(b)ArrayList contentIdList = new ArrayList();
(c)List contentIdList=null
//////////////////////////
java中推崇面向接口编程,也就是说构造具体类的实例的话,要用具体类的构造函数,但是返回给消费客户端应该返回抽象类实例或者接口类实例;(a)满足这个原则,(b)不满足这个原则;(c)只是声明了一个引用,这个引用将指向List型的对象。
liukang520236 2006-03-03
  • 打赏
  • 举报
回复
楼上超强!
偷学到了!
赶紧闪人!

已经存在 2006-03-03
  • 打赏
  • 举报
回复
上楼的讲的很清楚了了
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set

interpb 2006-03-03
  • 打赏
  • 举报
回复
List contentIdList = new ArrayList(); //定义一个接口的引用,实际指向一个接口的实现类
的对象

通过 contentIdList 只能调用接口中的方法,不能
调用 ArrayList中的扩充的方法

最常用的定义方式

ArrayList contentIdList = new ArrayList(); //就是定义一个ArrayList 引用,并创建一个
ArrayList 的对象,没有上面的定义的限制
但可移植差,不推荐

List contentIdList=null //定义一个引用,没有指向任何实际的对象,
还需要赋值后才能调用方法,不然有空指针异常



另外,第一种就相当于,下面的组合写法

List contentIdList=null ;
contentIdList = new ArrayList();



62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧