public static void printBuddies(Pair<?extends Employee>p)
{
Employee first =p.getFirst();
Employee second=p.getSecond();
System.out.println(first.getName()+"and"+second.getName()+"are budddies.");
}
对(Pair<?extends Employee>p)我不理解 。还有那个P.getFirst()要我们构造吗???
见笑了,请指教,谢谢……
{
Employee first =p.getFirst();
Employee second=p.getSecond();
System.out.println(first.getName()+"and"+second.getName()+"are budddies.");
}
对(Pair<?extends Employee>p)我不理解 。还有那个P.getFirst()要我们构造吗???
见笑了,请指教,谢谢……
<?extends Employee>表示pair中储存的是Employee任何它的子类
依照上面的代码P.getFirst()不需要创建。
import java.util.List;class Test7A{
}
class B extends Test7A{
}public class Test7 { public static void main(String[] args) {
List<Test7A> list=new ArrayList<Test7A>();
list.add(new Test7A());
list.add(new B());
//List<Test7A> list2=new ArrayList<B>(); 报错
List<? extends Test7A> list2=new ArrayList<B>();
//谁能从 理论上来解释一下吗?
// list2.add(new Test7A());报错
// list2.add(new B());报错
Class<Test7A> classTest7A1=Test7A.class;
// Class<Test7A> classTest7A2=B.class;报错
Class<? extends Test7A> classTest7A3=B.class;
}
}
这么用就是避免运行时类型转换出现的问题
不做限定,p.getFirst()等就得做强制类型转换,即可能出现异常