有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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;
              }
    }

共 (2) 个答案

  1. # 1 楼答案

    getPrevious方法的结果是下一个元素的previous属性的副本,而不是指向表示该属性的字段的指针。如果要更改属性,则需要setter和getter:head.getNext().setPrevious(null);

  2. # 2 楼答案

    =是一个赋值,但不能给方法赋值

           head.getNext().getPrevious()= null;
    

    getPrevious正在返回对该值的引用,不能为该方法(或其背后的变量)赋值

    并非所有方法都返回托管变量,有些方法返回计算值,因此允许这种类型的赋值是没有意义的

    您需要提供更多的方法,该方法能够实际取消引用类中包含的字段