当前位置: 首页 > news >正文

企业网站设计要求长春网站设计公司排名

企业网站设计要求,长春网站设计公司排名,百度竞价sem,wordpress 后台页面不正常[简单粗暴]一文彻底搞懂Java泛型中的PECS原则(在坑里躺了多年终于爬出来了) 两种限定通配符 表示类型的上界#xff0c;格式为#xff1a;#xff1f; extends T#xff0c;即类型必须为T类型或者T子类表示类型的下界#xff0c;格式为#xff1a;#xf…[简单粗暴]一文彻底搞懂Java泛型中的PECS原则(在坑里躺了多年终于爬出来了) 两种限定通配符 表示类型的上界格式为 extends T即类型必须为T类型或者T子类表示类型的下界格式为 super T即类型必须为T类型或者T的父类 PECS原则 生产者只能用extends,消费者只能用super 上代码 public class Fruit { }public class Apple extends Fruit{ }public class Banana extends Fruit{ }List? extends Fruit list 的理解 正如表面意思? extends Fruit表示的是泛型的类型是Fruit或者Fruit的子类,也就是说我们给list赋值时泛型可以写成Fruit或者Fruit的子类,可以是 new ArrayList(),也可以是new ArrayList(),还可以是new ArrayList() 看有些地方说? extends Fruit表示list中的元素可能是Fruit或者Fruit的子类,感觉这种说法很有问题, private static List? extends Fruit getExtendsList() {List? extends Fruit list;// Explicit type argument Fruit can be replaced with 意思就是new ArrayListFruit() 可以写成 new ArrayList()list new ArrayListFruit();list new ArrayListApple();list new ArrayListBanana();return list; }list的具体定义是new ArrayList(), new ArrayList(),还是new ArrayList(),在m1中是不知道的,最大的泛型是new ArrayList(),所以取出来的一定是Fruit,最小泛型new ArrayList(),new ArrayList()…可能有很多个,具体是哪个没办法确定,所以也没办法往里面添加元素 private static void m1( List? extends Fruit list) {Apple apple new Apple();// 有可能list的定义是 list new ArrayListBanana(),所以往里面添加Apple就会有问题// list.add(apple); }List? super Fruit list的理解 正如表面意思,泛型的类型是Fruit或者Fruit的父类,也就是我们给list赋值时泛型可以写Fruit或者Fruit的父类,可以是new ArrayList()也可以是 new ArrayList(); 如果理解成list中的元素是Fruit或Fruit的父类,仔细品品,漏洞百出,试想如果Fruit是个顶级接口呢?那岂不是list中只能放Object了?而且还只能是Object类本身? private static List? super Fruit getSuperList() {List? super Fruit list;list new ArrayListFruit();list new ArrayListObject();return list; }list的具体定义到底是new ArrayList()或者new ArrayList()在m2方法中是没法确定的,所以往list中添加元素只能按照最小泛型处理,即按照new ArrayList()处理,获取元素时按照最大的泛型处理,即new ArrayList(),所以拿到的元素都是Object(都Object了,泛型也就没意义了),所以? super Fruit的意义在于往集合中添加元素,也就是消费者只能用super private static void m2( List? super Fruit list) {Apple apple new Apple();list.add(apple);Banana banana new Banana();list.add(banana); }总结 List? extends Fruit list 限定通配符泛型(还不确定的泛型,但是有范围),一般用于只获取List? super Fruit list 限定通配符泛型(还不确定的泛型,但是有范围), 一般用于只添加(也可以获取,但是获取出来的是Object,没啥意义)List list 明确的泛型,可获取,也可添加,也是我们用的最多的泛型 JDK中的PECS java.util.Collections#copy public static T void copy(List? super T dest, List? extends T src) {int srcSize src.size();if (srcSize dest.size())throw new IndexOutOfBoundsException(Source does not fit in dest);if (srcSize COPY_THRESHOLD ||(src instanceof RandomAccess dest instanceof RandomAccess)) {for (int i0; isrcSize; i)dest.set(i, src.get(i));} else {ListIterator? super T didest.listIterator();ListIterator? extends T sisrc.listIterator();for (int i0; isrcSize; i) {di.next();di.set(si.next());}} }
http://www.zqtcl.cn/news/425442/

相关文章:

  • 网站域名和网站网址吗中东跨境电商平台有哪些
  • 常宁市城乡和住房建设网站怎样加强文化建设
  • 视频网站如何做营销策划模板网站 seo
  • 中企动力做网站好吗网页建设软件
  • 爱站网seo浙江省嘉兴市建设局网站
  • 南宁做网站比较好的公司有哪些贵阳网站上门备案业务
  • 网络叶子 网站推广做一手房做那个网站好
  • 太仓网站建设平台成都家装设计公司排名
  • 现在建一个网站一年费用只要几百元如何建一个免费试用网站
  • 网站没有被收录销售型网站的建设流程及特点
  • 成都58手机微信网站建设名录近一周财经新闻热点
  • wordpress情侣网站源码微信开放平台官网登录
  • 网站改版提示无需改版有没有兼职做设计的网站
  • 网站sem怎么做网络建设设计方案
  • wap网站在线生成做饰品网站
  • 网站主机在哪里注册呢江西的赣州网站建设
  • 零基础网站建设视频教程建筑设计专业是干什么的
  • 淘客做网站的话虚拟主机多大重庆网上房地产网签合同查询
  • 官网建站网站seo关键字优化软件
  • 网站制作的内容什么好开发板用什么语言编程
  • 医院品牌网站建设aws创建wordpress
  • dw做的网站怎么让别人看到动易网站频道栏目字体大小修改
  • 东莞网站设计公司排名辽宁建设工程信息网网上开标
  • 网站推广工具有页面素材图片
  • 网页设计搭建网站外贸求购信息平台
  • 仓库改造类网站怎么做手机创建网站的软件
  • 成都平台网站建设公司邯郸网络科技公司
  • 热门课程自己做网站大型购物网站建站
  • apache 创建网站重庆建站模板
  • 手机怎么制作网站叶县建设局网站