解决方案 »

  1.   

    面向对象中的继承,跟LIST 有毛关系
      

  2.   

    lz没能理解面向对象的继承,首先你往list中放的是字符串,然后你取的时候,用Object类型变量去接,即Object obj = it.next();一般的话如果list中放的对象不是你用来接的那个类的子类或实现类 会出现编译错误的,这里没报错是因为java中Object类是所有类的父类。有的子类重写了父类的toString方法,所以没有输出hashcode。如果你想知道某个类的toString返回的值,你可以看该类源代码或api文档,并不是所有类都会返回hashCode,比如ArrayList。
      

  3.   


    it.next();的返回值就是Object类型,String str = it.next();编译是不能通过的。所以说明这里应该没有继承关系了。
      

  4.   


    我明白了,其实是在调用add方法时使用了继承关系。
    谢谢了
      

  5.   

    1、ArrayList list = new ArrayList();这边没有用泛型
    所以String str = it.next();会编译报错
    如果改为ArrayList<String>  list = new ArrayList<String>()就不会报错2、就算用Object obj=it.next()这个it.next()实际类型也是String,这个可以断点看下
    只不过是父类的引用指向子类对象3、obj.toString()实际上调用String的toString()所以不是hashCode