int无法转换为Node

时间:2016-07-11 13:07:20

标签: java

我收到了这个错误:

  

不兼容的类型:int无法转换为Node

为什么我会遇到这种错误?

public void insertItem(int e)
{
  if(e<head.getItem())
  {
     addFirst(e);
  }
  else if(count==1)
  {
     addLast(e);
  }
  else
  {
     Node newNode = new Node(e);
     Node prev = head;
     Node p = prev.getItem();

     while(p!=null)
     {
        if(e<p.getItem())
        {
           newNode.setLink(p);
           prev.setLink(newNode);
           p = p.getLink();
           prev = prev.getLink();
        }
      }
   }
}



public class Node {
 private Node link;
 private int item;
 public Node(int item, Node link) {
  setLink(link);
  setItem(item);
 }
 public Node(int item) {
  this(item, null);
 }
 public Node() {
   this(0, null);
  } //empty node
 public void setLink(Node link) {
  if (link != null) this.link = link;
 }
 public void setItem(int item) {
  this.item = item;
 }
 public Node getLink() {
  return link;
 }
 public int getItem() {
  return item;
 }
 public String toString() {
  return item + "";
 }
}

我在这里使用来自另一个类的getItem():

public class Node
{
    private Node link;
    private int item;

    public Node(int item, Node link)
    {
        setLink(link);
        setItem(item);
    }

    public Node(int item)
    {
        this(item, null);
    }

    public Node()
    {
        this(0, null);
    }
//empty node public void setLink(Node link){ if(link != null) this.link = link; } public void setItem(int item)
// {this.item = item;} public Node getLink(){return link;} public int getItem(){return item;} public String toString(){return item+ "";} }

1 个答案:

答案 0 :(得分:0)

正如您可以清楚地看到的那样,Node#getItem返回int值不是Node值。

因此,当您尝试写作时:Node p = prev.getItem();它会向您显示错误。

也许你需要的是:Node p = prev.getLink();