lzj0327
2017-08-31 14:52iterator的泛型怎么理解
我写的例子:
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条回答
为你推荐
- 一个奇怪的问题,从泛型为Integer的Set中取到的遍历取到的值为String
- java
- java-ee
- spring
- tomcat
- eclipse
- 3个回答
- 关于泛型的问题
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 0个回答
- Hibernat泛型DAO问题
- hibernate
- 0个回答
- C++模板中使用STL迭代器的问题:vector<T>::iterator声明报错的原因及解决方法
- stl
- iterator
- 迭代器
- c++
- 2个回答
- 下面Java代码中怎么添加泛型
- java
- 泛型
- 1个回答
换一换