0
我想使自己的通用链表数据类型,但我有构造函数的问题,并得到类抛出异常。任何人都知道如何解决这个问题,为什么会发生这种情况?通用类构造函数在运行时抛出类抛出异常错误
这里是我的相关代码:
public class SinglyLinkedList<E> {
private LinkedListNode<E>[] linkedListNodeList;
public SinglyLinkedList()
{
linkedListNodeList = (SinglyLinkedListNode<E>[]) new Object[10];
}
}
出错行是在构造函数中实现线。
这里是我SinglyLinkedListNode类:
public class SinglyLinkedListNode<E> extends LinkedListNode<E>{
private E data;
public SinglyLinkedListNode(E data)
{
this.data = data;
}
}
而我的一个LinkedListNode类只是一个空的(现在)是SinglyLinkedListNode扩展抽象类。
这里是我收到的编译器错误:
java.lang.ClassCastException:[Ljava.lang.Object;不能转换为[LabstractDataTypes.SinglyLinkedListNode; at abstractDataTypes.SinglyLinkedList。(SinglyLinkedList.java:23)
类型的'新的对象[10]'是'Object []'。它不是'SinglyLinkedListNode []'。将对象转换为类型不会更改对象的类型。你不能把一辆汽车投给一只鸟,并且希望这辆汽车能够变成一只鸟。如果动物实际上是一只鸟,你可以将一只动物投给一只鸟。这就是说,为什么你需要一个链表中的节点数组?你知道链表是什么吗? –