>  기사  >  Java  >  Java Bean과 Map을 서로 변환하는 방법은 무엇입니까? (암호)

Java Bean과 Map을 서로 변환하는 방법은 무엇입니까? (암호)

不言
不言앞으로
2018-10-08 15:09:101788검색

이 글의 내용은 Java Bean과 Map을 서로 변환하는 방법에 관한 것입니다. (코드), 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Overview

Apache의 BeanUtils Bean 도구 클래스는 매우 강력하며 기본적으로 Bean 작업의 모든 방법을 다룹니다. 여기서는 두 가지 측면에 대해 이야기하겠습니다. 하나는 Bean으로 변환되는 것이고 다른 하나는 Map으로 변환되는 것입니다. Bean to Map은 실제로 Java의 동적 반사 기술을 사용하므로 어떤 종류의 Bean이든 동적을 통해 변환될 수 있습니다. 분석은 Map 객체가 되지만 전제 조건은 필드가 코딩 사양이기도 한 카멜 표기법을 준수해야 한다는 것입니다. Map to Bean도 Reflection을 통해 Bean으로 동적으로 구문 분석됩니다. Java의 Reflection은 실제로 매우 중요합니다. 우리가 사용하는 많은 도구 클래스에 존재합니다. 이를 사용할 수 있어야 할 뿐만 아니라 더 중요한 것은 직접 작성하여 구현하는 것이 가장 좋습니다. 이해가 깊어질 것입니다.# 🎜🎜#

Apache BeanUtils를 사용하여 Bean을 Map으로 변환

코드 구현#🎜🎜 #

/**
     * 用apache的BeanUtils实现Bean covert to Map
     * @throws Exception
     */
    public static void beanToMap() throws Exception {
        User user=new User();
        Map<String,String> keyValues=null;

        user.setPassWord("password");
        user.setComments("test method!");
        user.setUserName("wang shisheng");
        user.setCreateTime(new Date());

        keyValues=BeanUtils.describe(user);

        LOGGER.info("bean covert to map:{}", JSONObject.toJSON(keyValues).toString());
    }
# 🎜🎜#

테스트 결과

Map을 변환하려면 Apache BeanUtils를 사용하세요. to Bean#🎜 🎜#

코드 구현

/**
     * 用apache的BeanUtils实现Map covert to Bean
     * @throws Exception
     */
    public static void mapToBean() throws Exception {
        Map<String,String> keyValues=new HashMap<>();
        User user=new User();

        keyValues.put("sessionId","ED442323232ff3");
        keyValues.put("userName","wang shisheng");
        keyValues.put("passWord","xxxxx44333");
        keyValues.put("requestNums","34");

        BeanUtils.populate(user,keyValues);

        LOGGER.info("map covert to bean:{}", user.toString());
    }
테스트 결과#🎜🎜 #

#🎜🎜 #

Bean을 Map으로 변환하고 Bean을 Map으로 작성하는 BeanUtils 구현 이해하기

#🎜 Code###코드 구현#🎜 🎜### ## ####
/**
     * 应用反射(其实工具类底层一样用的反射技术)
     * 手动写一个 Bean covert to Map
     */
    public static void autoBeanToMap(){
        User user=new User();
        Map<String,Object> keyValues=new HashMap<>();
        user.setPassWord("password");
        user.setComments("test method!");
        user.setUserName("wang shisheng");
        user.setUserCode("2018998770");
        user.setCreateTime(new Date());
        Method[] methods=user.getClass().getMethods();
        try {
            for(Method method: methods){
                String methodName=method.getName();
                //反射获取属性与属性值的方法很多,以下是其一;也可以直接获得属性,不过获取的时候需要用过设置属性私有可见
                if (methodName.contains("get")){
                    //invoke 执行get方法获取属性值
                    Object value=method.invoke(user);
                    //根据setXXXX 通过以下算法取得属性名称
                    String key=methodName.substring(methodName.indexOf("get")+3);
                    Object temp=key.substring(0,1).toString().toLowerCase();
                    key=key.substring(1);
                    //最终得到属性名称
                    key=temp+key;
                    keyValues.put(key,value);
                }
            }
        }catch (Exception e){
            LOGGER.error("错误信息:",e);
        }
        LOGGER.info("auto bean covert to map:{}", JSONObject.toJSON(keyValues).toString());
    }
### ######테스트 결과### ## ##### 🎜🎜 #

위 내용은 Java Bean과 Map을 서로 변환하는 방법은 무엇입니까? (암호)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제