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

Java中如何显示List集合存储的自定义对象指定元素的标题属性

问题解答

问题根源

你直接打印Book类对象时,默认调用的是父类Object的toString()方法,该方法默认返回类全限定名@十六进制哈希值,就是你控制台看到的tp.books.Book@xxxx格式的输出。

额外提醒:你当前代码里get(0)取的是列表第1个元素,对应第1部《Harry Potter à l'Ecole des Sorciers》,你给出的期望输出第一个值是第2部的书名,如果确实需要输出第1、7部,注意核对你的需求和期望输出是否匹配。


解决方案1:直接调用书名属性的getter方法输出

首先给你的Book类添加书名字段的getter方法(假设你Book类里存储书名的属性名为title):

public class Book {
    // 你原有类的属性、构造方法
    private String title;

    // 添加getter方法
    public String getTitle() {
        return this.title;
    }
}

然后修改printOnlyTome1AndTome7方法里的打印语句:

public void printOnlyTome1AndTome7() {
    System.out.println("----- Titre des tomes -----");
    // 取第1部书名用get(0).getTitle(),要第2部的话改get(1)
    System.out.println(books.get(0).getTitle());
    System.out.println(books.get(6).getTitle());
}

解决方案2:重写Book类的toString()方法

如果你希望直接打印Book对象就默认输出书名,可以在Book类中重写toString方法:

public class Book {
    // 你原有类的属性、构造方法、其他方法

    @Override
    public String toString() {
        // 返回你想打印的内容,这里直接返回书名
        return this.title;
    }
}

修改后你原有打印books.get(0)的代码不需要改动,运行就会直接输出书名。


内容的提问来源于stack exchange,提问作者Aaricia-Lila

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:24:04