84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
业精于勤,荒于嬉;行成于思,毁于随。
是固定的,代表T或T的父类。
Java定义泛型的初衷是为了保证在运行时出现的错误能提早放到编译时检查,有了这个理解,再看<? extends T>和<? super T>。<? super T>叫做向下造型,在这里代表Comparable接口中的泛型元素都是T或者T的父类,在传入参数时可以传入T或者T的子类。<? extends T>叫做向上造型,以ArrayList<? extends T>为例,代表这个list集合中所有元素都是T的子类,在取出时可以自动转换为T类型。
讲的有点拗口,实际上没有多复杂,敲一敲就理解了。
如果你想从一个数据类型里获取数据,使用 ? extends 通配符;如果你想把对象写入一个数据结构里,使用 ? super 通配符;如果你既想存,又想取,那就别用通配符。
是固定的,代表T或T的父类。
Java定义泛型的初衷是为了保证在运行时出现的错误能提早放到编译时检查,有了这个理解,再看<? extends T>和<? super T>。
<? super T>叫做向下造型,在这里代表Comparable接口中的泛型元素都是T或者T的父类,在传入参数时可以传入T或者T的子类。
<? extends T>叫做向上造型,以ArrayList<? extends T>为例,代表这个list集合中所有元素都是T的子类,在取出时可以自动转换为T类型。
讲的有点拗口,实际上没有多复杂,敲一敲就理解了。
如果你想从一个数据类型里获取数据,使用 ? extends 通配符;
如果你想把对象写入一个数据结构里,使用 ? super 通配符;
如果你既想存,又想取,那就别用通配符。