1

我有一个HashMap. 我正在尝试检索该值并使用用户代码中的密钥打印它。

代码是:

lib.addbook(book2.getISBN(), book2);
Book ret = lib.getbook("978-81-291-1979-7");
System.out.println(ret);

电流输出:

O/P: LibraryPackage.Book@527c6768

我希望输出是一个字符串并显示实际值而不是书的地址。

4

2 回答 2

5

您必须在您的类中实现(并覆盖)该toString()方法Book,并指定您希望输出的内容。例如:

@Override
String toString()
{
  return this.author+": " + this.title;
}
于 2012-07-25T12:02:10.917 回答
0

如果你不想重写 .toString() 方法,或者需要在不同的情况下以不同的方式表示它,commons-lang 有一个很好的实用程序:

这是基于反射构建字符串的调用:

String str = ToStringBuilder.reflectionToString(object);

事实上,这是实现 .toString() 方法本身的好方法。此类的另一种替代用途是逐个字段地创建字符串:

String str = new ToStringBuilder(object)
    .append("field1", field1)
    .append("field2", field2)
    .toString();
于 2012-07-25T13:15:24.237 回答