假設我做的:GWT.create()總是在瀏覽器內存中創建一個新對象嗎?
VeryLargeObject o1 = GWT.create(VeryLargeObject.class();
VeryLargeObject o2 = GWT.create(VeryLargeObject.class();
...
VeryLargeObject o1000 = GWT.create(VeryLargeObject.class();
其中VeryLargeObject
是GWT資源接口,extends com.google.gwt.i18n.client.Messages
。
此代碼會在瀏覽器中創建1000個新對象實例嗎?或者GWT足夠聰明地檢測到VeryLargeObject
是不可變的,並且每次都重複使用它1個實例?
編輯:我發現這docs但行爲仍不清楚對我說:
使用GWT.create(類)「實例」擴展信息的接口返回一個自動生成的一個實例使用基於區域設置選擇的消息模板實現的子類。
您可以打印o1.toString(),o2.toString()等,以便檢查是否打印相同的值。如果是,那麼他們是指同一個對象。 – alkis
@alkis是的,在開發模式下,新對象的哈希碼是不同的。但這並不能保證在生產模式下這些對象不會引用下面的同一個對象。 –