lzj0327
lzj0327
2017-08-31 14:52

iterator的泛型怎么理解

  • iterator
  • java
  • 泛型

我写的例子:

 List<String> str = new ArrayList<String>();
        str.add("11");
        List list = str;
        list.add(2);
        System.out.println(str);

ArrayList调用的toString方法:

 public String toString() {
        Iterator<E> it = iterator();
        if (! it.hasNext())
            return "[]";

        StringBuilder sb = new StringBuilder();
        sb.append('[');
        for (;;) {
            E e = it.next();
            //String s = (String)e;
            sb.append(e == this ? "(this Collection)" : e);
            if (! it.hasNext())
                return sb.append(']').toString();
            sb.append(',').append(' ');
        }
    }

toString中的E不是代表String吗,System.out.println(str)这句话为什么不报错呢,
加上注释掉的 //String s = (String)e;就报类型转换异常,为什么会这样?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答

为你推荐

换一换