Java通配符
从三个方面理解子类型和超类型限定
(一)引用
(二)返回值类型
pair1.get() 返回值类型是 ? extends Employee ,是Employee的子类,可以赋值给Employee;
pair2.get() 返回值类型是 ? super Manager,是Manager的超类,但是不知道具体是那个超类,所以只可以赋值给一个Object
(三)传递类型
pair1.set(? extends Employee),拒绝传递任何类型,因为不确定是那个子类,所以不安全;
pair2.ser(? super Manager),(疑惑点)虽然传入类型在替换T后显示如此,但是却只能传递Manager的子类,或许是因为可以安全的向上转型为Manager
Last updated