有知道的吗28路啥张家口40路什么时候开通通

上海昂石新材料在行业上是做的仳较久的一家对于海绵城市的工程经验也是相当丰富,值得信赖的公司

首先说明本文不是解释或教学PECS的如果还不懂的读者可以参考下文。


本文针对上述两个下划线部分阐述自己的理解

确切地说,并不是就比如List的常用实现类ArrayList是允许存null的,当然这个是视不同数据结构规则不一样
但除了null外,任何对象(包括Obeject)也不能写入如图。

super不能读数据吗

确切地说,也不是因为get能返回一个Obejct一个,任何时候都可以用Object来接住如图
但这是无意义的,因为你用Object类去接收就代表了你无法调用任何子类相关的方法。

通过强淛转型不是可以吗

常见资料里见到的基本都是:
然后得出不能读取的结论,有些“聪明”的小伙伴可能就会这么想了:(此处以Apple为例)

既然下界数组可以写入Apple类及其子类那我读出来的时候用Apple类或者他们的父类来接住不就行了吗?

然后实操了一手果然“可以”
编译器都沒报错,甚至有些“严谨”的盆友还打印了一下看看运行会不会报错。
也没问题啊然后开始怀疑人生,难道这个原则有问题然后一番操作之后推论出:这个原则是建立在不进行强制转型的条件上,可是一查资料啥都没有

好了,上面的又聪明又严谨的人就是笔者我了

为什么不能写入,却又能读呢 当然了,不是说不能写入你可以写入Apple类跟它子类,但难道真的是让你自己写入数据再读吗

回到本质來,这是一个泛型的数组而数组,就比如ArrayList是可以接收实现了Collection接口的数组作为构造参数的


    

到此,真相就差不多浮出水面了
如图我们创建一个Fruit的数组,并把它作为参数去构造我们的<? super Apple>泛型数组显然,编译器还是没有报错(原因是泛型擦除读者请自行了解),但一运行錯误就如期而至了。

至此强制转型出错了(终于!!!)。

所以不是自己脑洞大开推测的什么建立在没有强制转型的条件下巴拉巴拉的而是就是不能读取(Object还是可以读取的,但上面说过了无意义)。甚至根本不应该用强制转型因为这会让问题到运行才发现

尽管可以写叺null用Object读取。
但这些顶多就是“钻牛角尖”的借口不过拓展一下知识点还是不错的。

本文完有误欢迎指出。

邯郸至成安28路公交车还没有通车

你对这个回答的评价是?

你对这个回答的评价是

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你嘚手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 张家口40路什么时候开通 的文章

 

随机推荐