[英]Why do you need (LinkedList)?
所以我在这里有一行代码:
LinkedList<Integer> p = (LinkedList) obj.c.clone();
我想知道你为什么在obj.c.clone()
之前需要(LinkedList)
部分?
方法Object.clone()
返回Object
类型的结果。 如果要将其用作LinkedList
,则需要将显式转换结果发送到LinkedList
类型。
答案是: 您需要类型转换才能访问目标类方法和字段。
Object
和LinkedList
是相同的类型层次结构,因此您可以进行转换,否则您将在Java中获得ClassCastException
。 有关类型转换的更多信息,请参阅此链接 。
clone()
方法返回一个Object
,因此必须将其LinkedList
为LinkedList
LinkedList类实现Java的可克隆接口 。 如果您阅读该具体接口上的文档,您会发现clone
deffinition是:
protected Object clone()
也就是说,在Java中对Object
对象的引用,对任何不是解包的基本类型的对象。
您需要将引用类型LinkedList
为LinkedList
,以便能够使用(“view”)其未包含在Object
类定义中的方法/属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.