你为什么需要(LinkedList)?

时间:2014-10-25 17:16:38

标签: java linked-list

所以我在这里有一行代码:

LinkedList<Integer> p = (LinkedList) obj.c.clone();

我想知道为什么在(LinkedList)之前需要obj.c.clone()部分?

4 个答案:

答案 0 :(得分:3)

方法Object.clone()返回Object类型的结果。如果您想将其用作LinkedList,则需要向LinkedList类型显式投射结果。

答案 1 :(得分:3)

答案是: 您需要使用类型转换来访问目标类方法和字段。

ObjectLinkedList是相同的类型层次结构,因此您可以进行强制转换,否则您将获得Java中的ClassCastException。 有关类型转换的详细信息,请参阅此link

答案 2 :(得分:2)

clone()方法返回Object,因此您必须将其强制转换为LinkedList

答案 3 :(得分:2)

LinkedList类实现Java´s clonable interface。如果您阅读该具体界面上的文档,您会发现clone deffinition是:

protected Object clone()

即,在Java中对Object对象的引用,指向任何未解包的基本类型的对象。

您需要将引用类型强制转换为LinkedList,以便能够使用(“查看”)Object类定义中未包含的方法/属性。