日期:2014-05-20  浏览次数:20661 次

这种写法是什么

从没见过呢,请问。

------解决方案--------------------
泛型
Collections里有很多这样的用法
------解决方案--------------------
? 通配符。也可以理解为占位符。
泛型的限定;
? extends E: 可以接收E类型或者E的子类型。上限。
? super E: 可以接收E类型或者E的父类型。下限

public static void printColl(Collection<? extends Person> al)
{
Iterator<? extends Person> it = al.iterator();


while(it.hasNext())
{
System.out.println(it.next().getName());
}
}

class Person
{
private String name;
Person(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}

class Student extends Person
{
Student(String name)
{
super(name);
}

}

说白了就是可以接收它爹和他的儿子们

------解决方案--------------------
这是泛型方法

因为在方法参数中有这个泛型标识 V,由于该方法并不位于一个泛型类中,所以需要加上泛型声明。

这里的泛型声明是 <V extends View>,表示方法列表中 view 参数的类型必须是 View 或者是 View 的子类型。