假设我做的: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是的,在开发模式下,新对象的哈希码是不同的。但这并不能保证在生产模式下这些对象不会引用下面的同一个对象。 –