基本上这就是我想要实现的目标。
classname @ address(?)[original toString()
],对象的名称,对象的年龄
@Override public String toString()
{
return String.format("%s , %s , %d", this.toString(), this.getName(),this.getAge());
}
问题,递归调用toString()
。
我无法致电super.toString()
,因为那不是我想要的。我希望“this
”拨打原始toString()
。
这个
this.super.toString()
由于显而易见的原因不起作用。
我正在耗尽蒸汽,一旦方法被覆盖,这可以完成吗?即打电话给原来的实施?
(我的编辑)基本上我需要的是:覆盖toString以显示'this'对象的两个属性,我也希望'this'调用原始的toString。
这不是项目或工作。只是用Java语言玩(学习)。谢谢
答案 0 :(得分:10)
您正在寻找super.toString()
。
答案 1 :(得分:0)
实际上,我试图达到同样的目的,super.toString()
并不是我想要的。我相信这是不可能的。
具体来说,我在Groovy / Grails中有一个域类,我想覆盖它的toString()
方法来添加一些额外的信息:
class Child extends Parent {
public String toString() {
return super.toString(this) + extra_info // not possible!!!
}
}
这与return super.toString() + extra_info
不同。在一个案例中,我得到了例如。
com.example.domain.Parent : 15, extra_info
。 (错误。实例相同,但toString
包含类型信息。)
另一方面:
com.example.domain.Child : 15, extra_info
。 (正确,但不可能。)