今天遇到个问题,真心搞不懂,后来经人指点有点明白,希望大虾指点,代码如下:
import java.util.LinkedList;
public class LinkedListDemo01 {
public static void main(String args[]){
LinkedList link01=null;
//LinkedList <? extends Number>link01=null;
link01=new LinkedList<Integer>();
link01.add(3333); //********去掉注释???????
((LinkedList)link01).add(3333);
LinkedList<Number> link=null;
link=new LinkedList<Number>();
link.add(3333);
link.add(33.33);
System.out.println(link);
A <? extends Number>a =new A<Integer>(123);
System.out.println(a);
}
}
class A <T>{
T x;
A(T x){
this.x=x;
}
public String toString (){
return x.toString();
}
}
<? extends Number >是支出容器内的数据最大类型, link01.add(3333);会报错是因为没有指明数据类型; ((LinkedList)link01).add(3333);不报错是因为把
Set <Map.Entry<A03, Person>>s=map.entrySet();//返回内部类 对象集合
//Iterator <Map.Entry<A03, Person>>iterator=s.iterator();
Iterator iterator=s.iterator();
while(iterator.hasNext()){
Map.Entry<A03,Person> me02= (Map.Entry<A03, Person>) iterator.next();//去掉注释???
//Map.Entry<A03,Person> me02= iterator.next();去掉注释为什么可以不用强制转换?
}