Java泛型(Generic)理解之一:T和?的区别
来源:互联网 发布:jpg转换成pdf mac 编辑:程序博客网 时间:2024/05/21 11:28
1) 使用T赋值的都是为具体类型.,我们用通配符(?)代替了:
? 叫有限制的通配符, 用于赋值的类型不确定的时候。
? 叫有限制的通配符, 用于赋值的类型不确定的时候。
2) 观察如下代码:
package genericTest;public class Parent { }package genericTest;public class Child extends Parent {}
package genericTest;import java.util.ArrayList;import java.util.List;public class Test {public static void doTest(List<? extends Parent> list) { //?表示运行时确定具体类型}/** * @param args */public static void main(String[] args) {List<Parent> pList = new ArrayList<Parent>() ;List<Child> cList = new ArrayList<Child>() ;doTest(pList) ;doTest(cList) ;}}
OK, 编译运行正常。
但如果换成如下代码:
public static void doTest(List<Parent> list) { }则 : doTest(cList) ; 编译报错,这是因为后者编译器认为两者类型是不一致的,且在编译期间就确定了,而前者表示运行时才确定。
深入的理解推荐这位的博客: http://www.linuxidc.com/Linux/2013-10/90928.htm
0 0
- Java泛型(Generic)理解之一:T和?的区别
- java-泛型<T> Generic Types
- java学习脚印: 泛型(Generic)认识之一
- java 基础之一 泛型(Generic)
- JAVA泛型<?>和<T>的区别
- 泛型(Generic)通配符?的理解
- Java中 <? super T>,<? extends T>,和<T>的区别
- Java中 <? super T>,<? extends T>,和<T>的区别
- Java中 <? super T>,<? extends T>,和<T>的区别
- Java中<? extends T>和<? super T>的理解
- Java中<? extends T>和<? super T>的理解
- Java中<? extends T>和<? super T>的理解
- MFC class和Generic class的区别
- MIPI Generic和DCS指令的区别
- java的generic(泛型)
- C# 泛型generic的简单理解
- 深入理解Java与Kotlin的泛型(Generic Type)和型变(Variance)
- java 泛型中T和?的区别
- Head out!http请求重定向和转发的区别
- Struct结构和Class类的区别
- zstu KI的斐波那契
- iShare·AD小技巧--在AD中如何快速的切换版层
- 【算法】常见的七种排序及其算法优化
- Java泛型(Generic)理解之一:T和?的区别
- sheral——一个方便定制及扩展的UI组件库
- sicily-1561. PRIME
- maven 标签,仓库修改
- 123
- thinkphp框架中的c方法
- Android沉浸式状态栏
- linux下ifconfig、iwconfig、iwlist命令详解
- 为eclipse安装marketplace