You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python打印BookCollection链表节点时输出内存地址而非书籍信息如何解决

问题根因

直接调用print(node)时,默认输出的是BookCollectionNode类实例的对象内存地址,既没有访问节点内存储的Book类实例,也没有调用书籍详情的格式化方法,因此输出内容不符合预期。

修复方案

方案1:修改遍历打印逻辑(推荐,无侵入性)

遍历节点时,先取出节点的data属性(即插入的Book对象),再调用getBookDetails()方法打印即可,示例代码如下:

// 修复后的getAllBooksInCollection方法逻辑
public void getAllBooksInCollection() {
    BookCollectionNode current = head;
    while (current != null) {
        Book currentBook = (Book) current.getData();
        System.out.println(currentBook.getBookDetails());
        current = current.getNext();
    }
}

方案2:重写节点类的字符串输出方法(适配直接打印节点的场景)

如果需要保留直接print(node)的写法,可在BookCollectionNode类中重写默认的字符串转换方法:

  • Python示例:
class BookCollectionNode:
    # 原有属性、get/set方法逻辑保持不变
    def __str__(self):
        # 直接返回内部存储书籍的格式化详情
        return self.data.getBookDetails()
  • Java示例:
@Override
public String toString() {
    return this.data.getBookDetails();
}

内容的提问来源于stack exchange,提问作者nwillows

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:54:03