2009-08-25 11 views
3

MapsでBeanUtils setPropertyメソッドを使用するにはどうすればよいですか?マップ付きBeanUtils

たとえば、このメソッドは次のとおりです。 public void setAddress(String type、Address address); 以下を使用して設定できます。 BeanUtils.setProperty(beanObject、 "address(home)"、addressObject);

しかし、設定したいオブジェクトがマップの場合は可能ですか?どうやって?

+1

これは何ですがBeanUtilsユーザーガイド: "標準のJavaBeans APIの拡張機能BeanUtilsパッケージは、基になる値がjava.util.Mapであるすべてのプロパティを「マップされる」とみなします。あなたは設定し、文字列値のキーを介して個々の値を取得することができます。 " しかし、私はHashMapをset(k、v)メソッドで動作させる方法を知らない – fmaste

答えて

2

は(barがマップfooのキーです)地図の構文foo(bar)を使用します。

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); 
} 

出力:

{FOO =バー}

関連する問題