普罗维登西<;T>;在GWT中

普罗维登西<;T>;在GWT中,gwt,Gwt,在GWT文档的“键”部分的文章中说,ProvidesKey允许我们在单元格列表或单元格表中识别DTO对象。还有一个代码示例可以证明这一点(他们修改了联系人,并表示由于提供了keyProvider,该联系人仍保留选择) 但是它也可以在没有密钥提供者的情况下工作。所以问题是我们使用ProvidesKey接口的目的是什么,为什么?在这个例子中,我们可以不使用它来做同样的事情。没有密钥提供程序的默认实现使用equals() 当您将一个对象替换为另一个表示同一个“实体”的实例以及不同的内容时,密钥提供程序

在GWT文档的“键”部分的文章中说,
ProvidesKey
允许我们在单元格列表或单元格表中识别DTO对象。还有一个代码示例可以证明这一点(他们修改了联系人,并表示由于提供了
keyProvider
,该联系人仍保留选择)


但是它也可以在没有
密钥提供者的情况下工作。所以问题是我们使用ProvidesKey接口的目的是什么,为什么?在这个例子中,我们可以不使用它来做同样的事情。

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

当您将一个对象替换为另一个表示同一个“实体”的实例以及不同的内容时,密钥提供程序变得至关重要(因此equals()不起作用);例如,从服务器检索更新版本时

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

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