我正在用 Java 编写一个通用链表,除了一个问题外,一切正常。
列表节点包含一个 E 类型的变量“数据”,我在通用链表代码中也有一个 E 类型的变量“tempData”。数据类型 E 将由使用链表的程序确定。
我要做的是通过调用节点函数getData()从链接节点“数据”中检索变量并将其存储在一个名为tempData的变量中。
这是当前代码:
tempData = firstNode.getData();
我的问题是,在编译时我收到错误说它们是“不兼容的类型”。我知道在运行时它们将是相同的数据类型,但是我如何满足编译它的语法?
我尝试将代码放入:
if( firstNode.getData() instanceof tempData.getClass() )
但它不起作用,因为类应该是不允许调用任何方法的地方。我还尝试了以下方法,但它仍然有效,但我仍然得到原始编译错误。
if( (firstNode.getData()).getClass == tempData.getClass() )
非常感谢任何和所有的帮助,谢谢。
编辑 3-28-13
tempData 的声明是“E tempData;”
firstNode 的声明是“私有 ListNode firstNode;”
firstNode 中的数据声明为“私有 E 数据”;由 .getData() 获得;
LinkedList 类“公共类 LinkedList E”的标头
ListNode 类“公共类 ListNode E”的标头
标题中的两个 E 周围都有小于和大于符号,它们只是在发布时不显示。