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

Java三个类场景下如何正确调用另一个类的值显示作者全名

问题根因

你直接将Author类对象用于字符串拼接时,Java会自动调用该对象从Object父类继承的默认toString()方法,该方法的返回值格式就是类名@十六进制哈希值,也就是你看到的Author@2f2c9b19这类异常内容。


解决方案1(推荐):重写Author类的toString()方法

在Author类中添加自定义的toString()实现,返回拼接好的姓名即可,后续所有直接打印Author对象的场景都会自动输出格式化后的姓名,无需重复拼接属性:

// 添加到Author类中即可
@Override
public String toString() {
    return firstName + " " + lastName;
}

解决方案2:手动拼接作者属性输出

如果你不想重写toString()方法,也可以修改Book类的printBook方法,主动调用Author类的get方法取值拼接:

public void printBook()
{   
   System.out.print("Title: " + title + "\nAuthor: " + author.getFirstName() + " " + author.getLastName() + "\nPrice: " + price);   
}

该方案要求你的Author类已经实现了getFirstName()、getLastName()两个公共get方法,和你描述的“已经包含对应set和get方法”的前提匹配,可直接使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:36:02