Java toString方法不打印

Java toString方法不打印,java,Java,当我调用toString()时,它调用的是内置的toString(),而不是我的自定义版本 以下是我的代码(删除了不必要的代码,使之成为一个最小、完整、可验证的问题: public class DoublyLinkedList<Item extends Comparable> { private class Node{ private Item item; private Node next; private Node prev;

当我调用toString()时,它调用的是内置的toString(),而不是我的自定义版本

以下是我的代码(删除了不必要的代码,使之成为一个最小、完整、可验证的问题:

public class DoublyLinkedList<Item extends Comparable> {

    private class Node{
      private Item item;
      private Node next;
      private Node prev;
      //methods to get/set next, prev, item
    }

    private Node head;
    private int numberOfEelements;

    //methods to add/remove items (sorted)

    public String toString(){
      Node current = head;
      StringBuilder sb = new StringBuilder();
      while(current != null){
        sb.append(current).append("Item: " + " ");
        current = current.getNext();
      }
      return sb.toString();
    }

    public static void main(String[] args) {

       DoublyLinkedList<Integer> list = new DoublyLinkedList<Integer>();
        list.sortedAdd(1);
        list.sortedAdd(5);
        list.sortedAdd(7);
        list.sortedAdd(9);
        list.sortedAdd(3);
        list.sortedAdd(2);
        list.sortedRemove(3);
        System.out.println(list.toString());

    }
}
公共类双链接列表{
私有类节点{
私人物品;
私有节点下一步;
私有节点prev;
//获取/设置下一个、上一个、项目的方法
}
专用节点头;
私有整数元素;
//添加/删除项目的方法(已排序)
公共字符串toString(){
节点电流=头;
StringBuilder sb=新的StringBuilder();
while(当前!=null){
附加(当前)。附加(“项:+”);
current=current.getNext();
}
使某人返回字符串();
}
公共静态void main(字符串[]args){
DoublyLinkedList=新的DoublyLinkedList();
列表。分类数据(1);
列表。分类数据(5);
已分类的清单(7);
已分类的清单(9);
列表。分类数据(3);
列表。已分类数据(2);
列表。分类删除(3);
System.out.println(list.toString());
}
}
非常感谢您的帮助。谢谢。

list.toString();


说明:
toString
方法生成对象的字符串表示形式,但它不生成任何输出。因此,您必须将结果发送到例如
System.out

toString
返回字符串,但您不使用它执行任何操作,但我尝试了System.out.println(list.toString)仍然不工作。我应该用它做什么呢?您需要创建一个
toString()
方法覆盖所有相关的类,包括
节点
双链接列表
。另一个问题是,你真的从来没有为
@glw设置下一个,你的意思是什么?我试过这个bro,它打印类似于这个双链接列表的东西$Node@3cd1a2f1Item:是,因为这是默认的字符串表示形式任何对象的定义:类的名称和内存中的地址。有许多方法可以创建更有意义的输出。例如,您可以在
DoublyLinkedList
中覆盖
toString
,以迭代这些项,并通过某种连接创建更有意义的输出。@Toni:这是因为您使用的是y我们的
节点
s(您没有为
节点
重写
toString
)。将节点的内容添加到
字符串
,而不是
节点
s。但是我应该如何迭代列表。我从未使用过迭代器?:p
System.out.println(list.toString());