A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马田冬雪 中级黑马   /  2012-11-5 22:25  /  9109 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

object能不能直接转成list,这么写为什么可以?

List list = new ArrayList();

Object o new ArrayList();
ArrayList al = (ArrayList)o;

List li = al;

List l = (List )o;

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
  1. public static void main(String[] args) {
  2.                 List list = new ArrayList();  //这句就不需要解释了吧。创建一个对象。

  3.                 /**
  4.                  * 下面这句,考虑一个问题,你的这句new ArrayList()的目的是什么?
  5.                  * 是不是来创建一个对象?
  6.                  * 既然是一个对象,那么将其引用赋值给作为所有类父类的Object就肯定没有问题。
  7.                  * 这是一个典型的父类引用指向子类对象。
  8.                  */
  9.                 Object o = new ArrayList();
  10.                
  11.                 /**
  12.                  * 在JVM看来,o是一个Object的引用,你要将这一个对象赋值给其子类,必须要强制转型。
  13.                  */
  14.                 ArrayList al = (ArrayList)o;
  15.                
  16.                 /**
  17.                  * ArrayList实现了List接口,与上面一样,父类引用指向子类对象。
  18.                  */
  19.                 List li = al;
  20.                
  21.         /**
  22.          * 参见ArrayList al = (ArrayList)o;说明。
  23.          */
  24.                 List l = (List )o;
  25.         }
复制代码
PS:不是Object直接转成List,而是将该引用指向的ArrayList对象转成List。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马