2009-08-25 6 views
3

Wie kann ich die BeanUtils setProperty-Methode mit Maps verwenden?BeanUtils mit Karten

Zum Beispiel diese Methode: public void setAddress (String-Typ, Adresse Adresse); Kann eingestellt werden mit: BeanUtils.setProperty (BeanObject, "Adresse (Home)", AddressObject);

Aber wenn das Objekt, das ich festlegen möchte, eine Karte ist, ist das möglich? Wie?

+1

Dies ist, was Das BeanUtils-Benutzerhandbuch sagt: "Als eine Erweiterung der JavaBeans Standard-API s berücksichtigt das BeanUtils-Paket jede Eigenschaft, deren zugrunde liegender Wert eine java.util.Map ist, die "zugeordnet" werden soll. Sie können einzelne Werte über einen Schlüssel mit Zeichenfolgenwert festlegen und abrufen. " Aber ich weiß nicht, wie man mit einer HashMap mit einer set (k, v) -Methode arbeiten kann – fmaste

Antwort

2

Verwenden Sie die Karte Syntax foo(bar) (bar ist der Schlüssel der Karte 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); 
} 

Ausgang:

{foo = bar}