最近,我有以下想法:當你定義你的對象,並重寫toString方法,這可能在程序執行過程中多次調用。我不確定某些UI組件是如何自我刷新的(刷新時JTable調用每個單元成員的toString方法),或者每次當您執行修改對象的指令時調試器都會調用toString等等。無論如何,我在考慮它是否會有利的是定義一個懶洋洋地評估String作爲我們的字符串定義,如果我們的結構是不變的:爪哇 - 使用的toString懶惰字符串值
private String toString;
//.. definitions of many components, sets, lists which won't change
public String toString(){
if (toString == null) // instantiate
return toString;
}
請問上面是值得做的事情?
不會有所作爲,因爲字符串對象無論如何都是不可變的。從方法的返回 – Jivings
無用「的原因IIRC,一個新的String對象將被分配, – BigMike
如果你調用toString並且每次生成一個新的字符串時,你可能會花substantail時間通過內部集迭代,建立一個字符串,然後返回一個新的對象,沒什麼用,因爲它與前一個完全一樣。這是我的理由 – Bober02