我最近有以下想法:当你定义你的对象并覆盖 toString 方法时,在程序执行过程中可能会被多次调用。我不确定某些 UI 组件如何刷新自己(刷新时 JTable 是否会调用每个单元格成员的 toString 方法),或者每次当您执行修改对象的指令时调试器是否调用 toString 等。无论如何,我在想它是否会如果我们的结构是 IMMUTABLE,则将惰性求值的 String 定义为我们的 to String 定义是有益的:
private String toString;
//.. definitions of many components, sets, lists which won't change
public String toString(){
if (toString == null) // instantiate
return toString;
}
以上值得做吗?