Close

How to convert java.util.Map To Java Bean?

[Updated: Apr 28, 2020, Created: Apr 28, 2020]

Java Bean Components Java 

Following example shows how to populate a Java Bean fields from java.util.Map.

Example

package com.logicbig.example;

public class Person {
  private String name;
  private int age;
  private String address;

  public String getName() {
      return name;
  }

  public void setName(String name) {
      this.name = name;
  }

  public int getAge() {
      return age;
  }

  public void setAge(int age) {
      this.age = age;
  }

  public String getAddress() {
      return address;
  }

  public void setAddress(String address) {
      this.address = address;
  }

  @Override
  public String toString() {
      return "Person{" +
              "name='" + name + '\'' +
              ", age=" + age +
              ", address='" + address + '\'' +
              '}';
  }
}
package com.logicbig.example;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

public class MapToBeanUtil {

  public static void main(String[] args) {
      Map<String, Object> map = new HashMap<>();
      map.put("name", "Tina");
      map.put("age", 30);
      map.put("address", "101 Sun Street, Yellow Town");
      Person person = toBean(map, Person.class);
      System.out.println(person);
  }

  public static <T> T toBean(Map<String, Object> beanPropMap, Class<T> type) {
      try {
          T beanInstance = type.getConstructor().newInstance();
          for (Object k : beanPropMap.keySet()) {
              String key = (String) k;
              Object value = beanPropMap.get(k);
              if (value != null) {
                  try {
                      Field field = type.getDeclaredField(key);
                      field.setAccessible(true);
                      field.set(beanInstance, value);
                      field.setAccessible(false);
                  } catch (Exception e) {
                      e.printStackTrace();

                  }
              }
          }
          return beanInstance;
      } catch (Exception e) {
          e.printStackTrace();
      }
      return null;
  }
}
Person{name='Tina', age=30, address='101 Sun Street, Yellow Town'}

See Also