2012-01-29 69 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()將不起作用)。例如從服務器檢索更新版本時。

相關問題