多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

泛型的使用、PECS原则

泛型的使用、PECS原则 文章目录?(问号类型)的泛型如何接收类的泛型可以用在静态方法吗?PECS(泛型遵循PECS原则)其他这里引用下程序员小灰的文章写的还是很不错的泛型有点抽象但是很有用。java泛型的两种用法List是泛型方法List?是限制通配符““和”?首先要区分开两种不同的场景第一声明一个泛型类或泛型方法。第二使用泛型类或泛型方法。类型参数“”主要用于第一种声明泛型类或泛型方法。无界通配符“?”主要用于第二种使用泛型类或泛型方法?(问号类型)的泛型如何接收乍一看有点懵因为拿常规类型接收编译就会报错。那么是不能接收吗? 是可以接收的。用Object即可因为所有对象的父类都是Object。类的泛型可以用在静态方法吗?例如publicclassDemoT{publicvoidmethod1(ListTlist){}// 注这个编译会报错publicstaticvoidmethod2(ListTlist){}}为什么静态类直接使用泛型会报错呢?是因为这里用的是类的泛型但是静态方法在构造之前就可以调用那时候还没传T进来所以找不到。解决方案静态方法上直接定义泛型。PECS(泛型遵循PECS原则)PECS(producer extends consumer super)(生产者用extends、消费者super)。这是很合理的因为生产者要创建消费者要使用。以List为例创建的时候需要new ArrayList(); #创建的时候要创建具体的类。使用的时候需要用list.add(); #用的时候肯定是用父类的接口方法其他这里引用下程序员小灰的文章写的还是很不错的https://mp.weixin.qq.com/s?__bizMzIxMjE5MTE1Nwmid2653228404idx1sn2243e6afdac2e4e9795834f1c4763e12chksm8c987faebbeff6b813c8daa8da0a86fc4adc80fe88faf27d803b58b5a174d554a28ed8a656c0scene21#wechat_redirect
返回列表