Here we go, you can do like this ....
Beanonene.java
import java.util.Map; public class BeanOne { private String fieldOne; private Map<String,BeanTwo> fieldTwo; public Map<String, BeanTwo> getFieldTwo() { return fieldTwo; } public void setFieldTwo(Map<String, BeanTwo> fieldTwo) { this.fieldTwo = fieldTwo; } public String getFieldOne() { return this.fieldOne; } public void setFieldOne(String fieldOne) { this.fieldOne = fieldOne; } }
Beantwo.java
public class BeanTwo { private String fieldOne; public String getFieldOne() { return this.fieldOne; } public void setFieldOne(String fieldOne) { this.fieldOne = fieldOne; } }
Tester.java
import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; import org.apache.commons.beanutils.BeanUtils; public class Tester { public static void main(String[] args) throws IllegalAccessException, InvocationTargetException { Map beanTwoMap = new HashMap(); beanTwoMap.put("fieldOne", "fieldOne2222Value"); Map beanOneMap = new HashMap(); beanOneMap.put("fieldOne", "fieldOneValue"); beanOneMap.put("fieldTwo", beanTwoMap); BeanOne beanOne = new BeanOne(); BeanUtils.populate(beanOne, beanOneMap); System.out.println(beanOne.getFieldOne()); System.out.println(beanOne.getFieldTwo().get("fieldOne")); } }
the output will be: -
fieldOneValue fieldOne2222Value
source share