2009-08-25 41 views
3

如何在Maps中使用BeanUtils setProperty方法。BeanUtils with Maps

例如,此方法: public void setAddress(String type,Address address); 可以使用: BeanUtils.setProperty(beanObject,「address(home)」,addressObject);

但是,如果我想設置的對象是一個地圖,有可能嗎?怎麼樣?

+1

這是什麼BeanUtils用戶指南說: 「作爲對標準JavaBeans API的擴展s,那麼BeanUtils包會將其基礎值爲java.util.Map的任何屬性視爲「映射」。您可以通過字符串值來設置和檢索單個值。「 但我不知道如何使用set(k,v)方法使用HashMap – fmaste 2009-08-26 18:38:25

回答

2

使用地圖的語法foo(bar)bar是地圖foo的鍵):

public static class Bean{ 
    private Map<String, String> data = new HashMap<String, String>(); 
    public Map<String, String> getData(){ 
     return data; 
    } 
    public void setData(final Map<String, String> data){ 
     this.data = data; 
    } 
} 

public static void main(final String[] args) throws Exception{ 
    final Bean bean = new Bean(); 
    // assign the foo key of the data property to the value 'bar' 
    BeanUtils.setProperty(bean, "data(foo)", "bar"); 
    System.out.println(bean.data); 
} 

輸出:

{富=酒吧}