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)
工作+工作+工作+发表
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗