【问题标题】:Why do you need (LinkedList)?为什么需要(LinkedList)?
【发布时间】:2014-10-25 17:16:38
【问题描述】:

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

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

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

【问题讨论】:

    标签: java linked-list


    【解决方案1】:

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

    ObjectLinkedList 是相同的类型层次结构,所以你可以强制转换,否则你会在 Java 中得到 ClassCastException。 有关类型转换的更多信息,请参阅link

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        clone() 方法返回一个Object,所以你必须把它转换成LinkedList

        【讨论】:

          【解决方案4】:

          LinkedList 类实现Java´s clonable interface。如果您阅读有关该具体接口的文档,您会发现clone 定义是:

          protected Object clone()
          

          也就是说,在 Java 中,对 Object 对象的引用,对任何不是展开的基本类型的对象。

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-06-09
            • 2020-05-03
            • 2021-03-23
            • 1970-01-01
            • 2020-03-22
            • 2011-08-11
            • 2019-06-09
            相关资源
            最近更新 更多