자바 기본 값 맵 에 Bean 속성 값 을 넣 는 인 스 턴 스

3203 단어 JavaBeanMap
자바 기본 값 맵 에 Bean 속성 값 을 넣 는 인 스 턴 스
발 사 를 이용 하여 자바 대상 의 속성 값 을 속성 이름 을 키 로 하여 맵 에 저장 하 는 간단 한 실현.자신의 속성 및 부모 클래스 로부터 계승 하여 얻 은 속성 을 포함 합 니 다.자바 형식의 getField[s]방법 은 Public 형식의 속성 만 가 져 올 수 있 고,getDeclared Fields 는 모든 성명 의 속성 을 가 져 올 수 있 으 며,클래스 의 가시 성 이 공유 되 지 않 으 면 Field 의 get(Object)방법 은 구체 적 인 속성 값 을 가 져 올 수 없습니다.

package com.wood.util; 
 
import java.lang.reflect.Field; 
import java.util.HashMap; 
import java.util.Map; 
 
/** 
*  
* @ClassName: BeanToMapUtils 
* @Description: TODO 
* @author  wood 
* @date   2014-10-31   09:52:41 
* 
 */ 
public class BeanToMapUtils { 
  /** 
   * getFileds    public   <br/> 
   * getDeclaredFields          <br/> 
   * @param bean 
   * @return                Map  
   */ 
  public static Map<String,Object> beanToMap(Object bean){ 
    Map<String,Object> result = new HashMap<String,Object>(); 
    if(bean==null){ 
      return result; 
    } 
     
    Field[] fields = bean.getClass().getDeclaredFields(); 
    if(fields==null||fields.length==0){ 
      return result; 
    } 
     
    for(Field field:fields){ 
      //      (           ),       
      boolean accessible = field.isAccessible(); 
      if(!accessible){ 
        field.setAccessible(true); 
      } 
       
      //          Map 
      String key = field.getName(); 
      try { 
        result.put(key, field.get(bean)); 
      } catch (IllegalArgumentException e) { 
        e.printStackTrace(); 
      } catch (IllegalAccessException e) { 
        e.printStackTrace(); 
      } 
       
      //       
      field.setAccessible(accessible); 
    } 
     
    //       
    fields = bean.getClass().getSuperclass().getDeclaredFields(); 
    if(fields==null||fields.length==0){ 
      return result; 
    } 
     
    for(Field field:fields){ 
      //      (           ),       
      boolean accessible = field.isAccessible(); 
      if(!accessible){ 
        field.setAccessible(true); 
      } 
       
      //          Map 
      String key = field.getName(); 
      try { 
        result.put(key, field.get(bean)); 
      } catch (IllegalArgumentException e) { 
        e.printStackTrace(); 
      } catch (IllegalAccessException e) { 
        e.printStackTrace(); 
      } 
       
      //       
      field.setAccessible(accessible); 
    } 
     
    return result; 
  } 
   
  public static void main(String[] args) { 
    Dog info = new Dog(); 
    info.setCountry("cc"); 
    info.setName("Dog"); 
     
    info.setCategory("gram"); 
    info.setOwner("wang"); 
     
    System.out.println(beanToMap(info)); 
  } 
} 

읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기