Java基础-泛型-0.0.1 通配符<?>以及PECS

通配符<?>

个人理解,<?>可用于需要泛型,但又不访问泛型对象的场景:

业务中遇到这种场景:如声明一个方法,用于处理对不同泛型类某些属性的修改,而目标属性不涉及泛型类操作,只是为了传入该泛型对象,此时入参我选择使用泛型<?>:
声明

public void execute(SomeAbstractClass<?>)

其中并没有对?所代表的对象进行任何操作,而是用到了SomeAbstractClass的公共方法

使用

SomeAbstractClass<Generic1> class1 = new SomeAbstractClass<>(generic1Obj)  
SomeAbstractClass<Generic2> class2 = new SomeAbstractClass<>(generic1Ob2)  
execute(class1)  
execute(class2)  

上界限定通配符<? extends T>

对应生产者

Generic<? extends T> producer

常用于

T obj = producer.get()

下界限定通配符<? super T>

对应消费者

Generic<? super T> consumer

常用于

T newObj = new T()
consumer.addObj(newObj)
posted @   Julymay  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示