Wildcard (Java)

wiki
A bounded wildcard is one with either an upper or a lower inheritance constraint. The bounds can be both class and interface types. Upper bounds are expressed using the extends keyword and lower bounds using the super keyword. An upper bound on a wildcard must be a subtype of the upper bound on the type parameter it is assigned.

Generic<? extends SubtypeOfUpperBound> referenceConstrainedFromAbove;

This reference can hold any instantiation of Generic with an actual type parameter of SubtypeOfUpperBound’s subtype. A wildcard that does not have an upper bound is effectively the same as one that has the constraint extends Object, since all types implicitly extend Object. A wildcard with a lower bound

Generic<? super SubtypeOfUpperBound> referenceConstrainedFromBelow;

can hold instantiations of Generic with any type that is both a subtype of UpperBound and a supertype of SubtypeOfUpperBound. The type bounds are trivial examples that conform.

Generic 可以是LIST,SET等等
? extends SubtypeOfUpperBound 代表一个上界,?代表任意继承了SubtypeOfUpperBound 的类的实例均可以向内传递,
或者可以说是继承了SubtypeOfUpperBound的子类型
SubtypeOfUpperBound 可以是类或interface。

super SubtypeOfUpperBound 代表一个下界,任意SubtypeOfUpperBound 的父类型,可以给referenceConstrainedFromBelow这个引用声明任意父类型的变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值