2012-01-29 37 views
1

GWT文档中的this文章中的“Keys”部分表示ProvidesKey<T>允许我们在单元格列表或单元格表中标识DTO对象。还有一个代码示例说明(他们修改了联系人,并表示选择仍保留在该联系人上,因为他们提供了keyProvider)。提供密钥<T> GWT

Contact sarah = CONTACTS.get(3); 
    selectionModel.setSelected(sarah, true); 

    // Modify the name of the contact. 
    sarah.name = "Sara"; 

但它也可以在没有keyprovider的情况下工作。所以问题是我们为什么使用ProvidesKey接口,为什么?在那个例子中,如果没有它,我们可以做同样的事

回答

3

没有密钥提供程序的默认实现使用equals()。

当你用另一个代表同一个“实体”的实例替换一个对象时,关键提供者变得非常重要,具有不同的内容(所以equals()将不起作用)。例如从服务器检索更新版本时。

相关问题