[当前,我正在使用以下代码来打印对象的字符串值,这是为了避免由于使用toString()方法而导致NullPointerException。但是,代码正在打印我,看来是对象的内存位置的Java表示。
代码:String.valueOf(request)
输出:io.restassured.internal.RequestSpecificationImpl@6ef1a1b9
这是问题的细分:
我更喜欢使用这个。
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("RequestSpecificationImpl{");
sb.append("a='").append(a).append('\'');
sb.append(", b='").append(b).append('\'');
sb.append(", c='").append(c).append('\'');
sb.append('}');
return sb.toString();
}
上面的结果输出是调用哈希值。不同的类可能具有不同的实现。它什么也没说,只是让HashMap,HashSet等工具类快速区分它是哪个实例的一种快速方法。它也不是唯一的。每当您覆盖equal方法时,都应覆盖toString方法。
最后,您可以使用此库:lombok(非常流行),它将创建set / get / toString / constructors自动方法。https://projectlombok.org/