我已经看到这两种方法都被使用过,但是从来没有听说过任何一种方式因为任何特殊原因而优先于其他方式.
public String toString() {
return this.field1 + " " + this.field2;
}
Run Code Online (Sandbox Code Playgroud)
与
public String toString() {
return getField1() + " " + getField2();
}
Run Code Online (Sandbox Code Playgroud)
我在我的例子中使用String连接来保持代码简洁.
如果你有吸气剂,请使用吸气剂!
也许,有一天你改变代码,以便getter不仅会返回字段值,而且还会执行更多操作或以不同的方式创建结果.然后,你会更高兴你一直使用吸气剂.
但是像往常一样,我的建议有一些例外 - 如果允许覆盖getter方法,你对toString()方法有什么期望,你想要它使用类字段还是 - 或者覆盖 - getter方法的结果.
所以,像往常一样,它取决于,但除非我有充分的理由直接访问这些字段,否则我会使用getter.