我有双重LinkedList
(DLL
(,我想将其分离为两个DLL
,一个只有奇数,另一个有偶数。但我在尝试((Generic)%2==0)
时出错
错误消息:方法parseInt(E)
对于类型DLL<E>
未定义
public DLL parni() {
DLL<E>niza = new DLL<E>();
DLLNode<E>tmp = first;
while(tmp.succ != null) {
if((parseInt(tmp.element)) % 2 != 0) {
niza.insertLast(tmp.element);
delete(tmp);
}
tmp = tmp.succ;
}
}
tmp.element是E类型的泛型
顺便说一句,我尝试在DLL
类中添加超级类Number
class DLL<E extends Number>
有什么建议吗?
Simple:您编写了自己的类DLL<E extends Number>
。
现在,您编写的代码打算调用属于自己的类DLL的方法parseInt()
。
编译器告诉你:
对于类型DLL ,方法parseInt(E(未定义
您还没有编写该方法。
换句话说:如果您打算在您自己的类上使用该名称的方法,那么您必须将这样的方法添加到您的类中。到目前为止,E
通用参数没有任何意义。与您打算对对象调用的任何其他方法一样,该方法必须存在于相应的类中。
除此之外:不要使用诸如"DLL"之类的名称。不要缩写类名。它们的名称与人类读者通信,而DLL什么也不通信。例如,将其称为DualLinkedList。
如果E扩展java.lang.Number,您可以这样尝试:
if(tmp.element.intValue() % 2 != 0)