菜鸟虚心求教。
泛型中不太明白的问题
一个方法
public static<T> void show(ArrayList<T> al)
{ Iterator<T> it = al.iterator();
while(it.hasNext())
{
T t = it.next();
System.out.println(t.length());
}
}
和另一种写法
public static void show(ArrayList<?> al)
{
Iterator<?> it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next().length());
}
}
看老毕的视频,老毕说,下面这个不对是因为“?”代表不明确的类型,所以无法调用length()方法。
但是上面的为什么会提示编译错误。T不是代表明确的类型么?假如是字符串类型的集合调用,t.length() 也不行。
|
|