我有一个HashMap
. 我正在尝试检索该值并使用用户代码中的密钥打印它。
代码是:
lib.addbook(book2.getISBN(), book2);
Book ret = lib.getbook("978-81-291-1979-7");
System.out.println(ret);
电流输出:
O/P: LibraryPackage.Book@527c6768
我希望输出是一个字符串并显示实际值而不是书的地址。
您必须在您的类中实现(并覆盖)该toString()
方法Book
,并指定您希望输出的内容。例如:
@Override
String toString()
{
return this.author+": " + this.title;
}
如果你不想重写 .toString() 方法,或者需要在不同的情况下以不同的方式表示它,commons-lang 有一个很好的实用程序:
这是基于反射构建字符串的调用:
String str = ToStringBuilder.reflectionToString(object);
事实上,这是实现 .toString() 方法本身的好方法。此类的另一种替代用途是逐个字段地创建字符串:
String str = new ToStringBuilder(object)
.append("field1", field1)
.append("field2", field2)
.toString();