泛型技术解决了向下转型的安全性问题,随之而来,又会产生一个新的问题:如果泛型类设置的不同,方法里面的参数引用也必定是不同的,为了解决这个问题,引入了通配符的使用
如果没有通配符,在泛型方法里面定义多个泛型类
1 | class Message<T>{ |
这样程序显然会报错
可以使用通配符”?”解决参数的传递问题,代码如下:
1 |
|
使用通配符”?”,不管何种泛型类型,fun方法对抗与接收参数
在”?”通配符的基础上还有两个子通配符:
“? extends 类”,eg:? extends Number: 意味着可以设置Number或者Number的子类
“? super 类”,eg:? super String: 只能设置String和他的父类Object
