用 clone()方法复制数组为什么不需要强制类型转换?

2019-09-07 10:20:29 +08:00
 zhao1014
2931 次点击
所在节点    Java
5 条回复
chendy
2019-09-07 11:24:05 +08:00
因为返回类型就是数组…
guyeu
2019-09-07 11:56:49 +08:00
java7 以后,重写父类的方法的返回值可以是父类方法的派生类,你可以理解为_Array_重写了 Object 的 clone 的 clone 方法,并且返回了一个和自己类型相同的对象
zhao1014
2019-09-07 15:06:16 +08:00
@chendy 返回的不是 Object 类型吗?
zhao1014
2019-09-07 15:32:51 +08:00
@guyeu 首先,如果此对象的类不实现接口 Cloneable,则抛出 CloneNotSupportedException。 请注意,所有数组都被认为是实现接口 Cloneable, ( 并且数组类型 T[]的 clone 方法的返回类型是 T[] ), 其中 T 可以任何引用或原始类型。 另外,该方法将创建该对象的类的新实例,并将其所有字段初始化为被克隆对象的字段,就像通过赋值一样。

好吧,api 文档里说数组调用 clone ()方法返回的就是 array 类
GM
2019-09-07 15:37:32 +08:00
@zhao1014

String[] strArray = null;
strArray.clone() 返回类型是 String[] ,IDE 上可以看提示。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/598780

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX