java为什么这个程序显示错误?
我创建了一个函数来删除双链接列表中的第一个元素。但是语句中有一个错误head.getnext().getprevious()= null;
有人能帮忙吗
public DNode deleteFirst() // deletes the first element.
{
if( head== null) // for empty list
{
System.out.println("List already Empty!");
}
DNode temp = head;
if (head.getNext()== null) //if only one item
tail = null;
else
head.getNext().getPrevious()= null;
head = head.getNext();
return temp;
}
}
# 1 楼答案
getPrevious方法的结果是下一个元素的previous属性的副本,而不是指向表示该属性的字段的指针。如果要更改属性,则需要setter和getter:
head.getNext().setPrevious(null);
# 2 楼答案
=
是一个赋值,但不能给方法赋值getPrevious
正在返回对该值的引用,不能为该方法(或其背后的变量)赋值并非所有方法都返回托管变量,有些方法返回计算值,因此允许这种类型的赋值是没有意义的
您需要提供更多的方法,该方法能够实际取消引用类中包含的字段